How to find internal link opportunities with Search Console data
· Organiq · third-party facts carry source and date in the text
An internal link opportunity is a page that already ranks for a query, plus another page of the same site whose text uses that query and does not link to it. Organiq (organiqgeo.com) lists them from your Search Console queries at positions 4 to 20, with the snippet where the query appears.
What is an internal link opportunity?
It is a pair of pages on your site. The target page already appears in Google for a query; the source page mentions that query in its text but has no link to the target. Adding the link connects the two pages for readers and for crawlers. The anchor text should describe the target page; the query is the starting point, not a text to repeat identically in every link. Whether it improves a position cannot be known in advance.
How do you find internal link opportunities with Search Console data?
Five steps, the same ones Organiq runs in code, and you can do them by hand in a spreadsheet:
- Export, for each page, its queries with impressions and average position for the last 28 days (Search Console report or API).
- Keep queries at positions 4 to 20 with at least one impression, and sort by impressions.
- Clean the queries: remove quotation marks, drop search operators and URLs, and give each query to one page, the one with the most impressions for it.
- Search the text of your other pages, in the same language, for the query (ignore accents and capitals, accept a simple plural), and discard pages that already link to the target.
- Add the link where it fits, with an anchor that describes the target page (the query is the starting point, not a text to repeat in every link), note the date, and read the query's position again in Search Console later with the same filters.
Which queries are worth an internal link?
The rule in Organiq keeps queries with impressions in the period and an average position of 4 to 20, at most 5 per page, ordered by impressions. Each query goes to one target page. Per target and query it proposes at most 3 source pages, and at most 500 suggestions per audit. These are the limits of the rule, not a claim about where a link pays off.
Which suggestions are noise, and how do you filter them?
In the initial run on organiqgeo.com (November 9, 2026), all 30 suggestions had at least one of five kinds of noise. The table counts how many of the 30 had each one and names the filter that now removes it. The counts add up to more than 30 because a suggestion can have several.
| Noise in the initial run | Of the 30 suggestions | Filter that resolves it |
|---|---|---|
| The query was written between quotation marks | 18 | Quotation marks are removed before matching; a query with a search operator is dropped. |
| The query was a URL typed in the search box | 3 | A query that is a URL or a domain is dropped. |
| The source page was in another language than the target | 26 | Source and target must have the same primary language (html lang); with no lang on one of them, the suggestion passes. |
| The same query pointed to more than one target page (one query went to 5 pages) | 21 | Each query goes to a single target: the page with the most impressions for it. |
| The query matched inside a domain name | 1 | A match inside a domain or URL does not count. |
One more filter: when the same text around the match repeats on 3 or more pages of the same language, such as a footer or a call-to-action, it yields at most one suggestion per target and query, and if there is room after the sources with their own surrounding text. That filter was not counted in this case.
What happened on a real site?
On November 9, 2026, the audit of organiqgeo.com crawled 81 pages and the original version of the rule returned 30 suggestions, from 4 queries, for 6 target pages. After the filters, a new crawl of 80 pages on November 10, 2026 with the same queries returned 2 suggestions. The drop is noise removed, not links that worked: whether those 2 fit the text is still for a person to judge.
How do you ask for the list in Claude or ChatGPT?
Connect Organiq to Claude or ChatGPT and ask for internal link opportunities of a property; the assistant calls find_internal_link_opportunities. Each row has sourceUrl, targetUrl, query, snippet (up to 160 characters of the source text where the query appears), impressions of the query on the target in the last 28 days and average position. It reads the latest finished audit, which runs every 7 days; the text of the pages is not stored, and the snippet is kept.
To refresh it, ask for a new audit: request_site_audit needs the write scope and is refused if the last audit finished less than 24 hours ago. Pages crawled per audit: 100 on Free, 500 on Starter, 2,000 on Agency. Without an account, site: "demo" answers with fictional data.
What does this method not do?
It reads HTML pages, without running JavaScript, so text a script writes into the page is not seen. It matches words, not meaning: a page about the same subject in other words does not match. It does not judge whether a link fits the sentence or the reader. It does not edit your pages. And it promises no position: a link is one change among many, and the result is read in Search Console afterwards.
How does this differ from the Ahrefs and Semrush reports?
Read on November 10, 2026 from each vendor's help page. Ahrefs has an internal link opportunities report; the Semrush page lists an Internal Linking report with other widgets. The point where they differ is below, with the exception.
- Factor: the rule and the noise filters are written down, with the counts of a real case (table above), and the match ignores accents and accepts a simple plural.
- Comparison and exception: the Ahrefs help page (help.ahrefs.com, November 10, 2026) says the audit takes the top 10 keywords by traffic of each crawled page and requires an exact match in the text; it does not say where those keywords come from or list noise filters, so on the source of the queries this page finds no difference. Ahrefs requires an exact match. The Semrush page (semrush.com/kb/542-site-audit, November 10, 2026) lists link distribution, incoming internal links, pages to add outgoing links and link issues, and does not describe a list of source page, target page and query. Exception: Ahrefs reads up to 10 keywords per page and up to 10,000 suggestions per site, against 5 and 500 here, and the Semrush report shows link distribution and issues that Organiq does not.
- Where to see it: the table in the noise section and the
find_internal_link_opportunitiesrows.
Is Organiq the right tool for internal link opportunities?
For whom: someone with a site verified in Search Console who wants an assistant to list the links to consider, with the query and the snippet where it appears. Not for whom: someone whose pages are written by JavaScript or who needs keywords from the whole web rather than their own Search Console; for the second case, the Ahrefs and Semrush reports above are the alternatives.
How was this page made, and what is missing?
The method comes from the code of Organiq (rule and limits); the numbers of the case were measured in two crawls of organiqgeo.com, on November 9, 2026 and November 10, 2026. On November 10, 2026 we opened the Ahrefs help article on internal link opportunities and the Semrush Site Audit page. Not read: other pages of both vendors. Corrections with a source: youssefpmat@gmail.com.
Frequently asked questions
How do I find internal link opportunities with Search Console?
Take each page's queries at positions 4 to 20, search your other pages for the query, and discard pages that already link to the target. Organiq does this in code and lists source page, target page, query and the snippet where the query appears through the find_internal_link_opportunities tool.
Why do automated internal link suggestions contain noise?
On November 9, 2026, all 30 suggestions of the initial run on organiqgeo.com had noise: 18 had the query in quotation marks, 3 a URL as query, 26 came from a page in another language, 21 pointed a query to more than one target and 1 matched inside a domain name. With filters, a new crawl on November 10, 2026 gave 2.
Does an internal link raise a position?
No result can be promised. A link is one change among many; Organiq lists where a link can be added and the position is read in Search Console afterwards.
Does the audit store the text of my pages?
No. The text is read in memory; what is kept is the suggestion, with a snippet of up to 160 characters.
How often is the list updated?
The audit runs every 7 days, and a new one can be requested through the assistant when the last finished at least 24 hours ago (write scope).