SEO for Developers: What Actually Moves Rankings When Your Site Is a Repo
SEO for developers is five jobs: get pages indexed, aim each page at one search, win the click, link to the pages that earn, and measure each change from Google's recrawl.
SEO for developers comes down to five jobs, in this order: make sure Google can crawl and index the pages that matter, aim each page at one search in the words people actually type, fix the titles on pages that rank but lose the click, link from your own pages to the ones that earn money, and measure every change from the day Google recrawls the page, not the day you deployed it. Almost all of it is code you already own: status codes, canonicals, the sitemap, the rendered HTML, the <title> element and the links between pages.
This guide covers each job from the developer's side of the repo, what Search Console can and cannot tell you about them, and how to run the whole thing as a loop instead of a one-off audit.
TL;DR:
- Indexing comes first. A page that returns the wrong status code, renders its content only in the browser, or points its canonical somewhere else cannot rank, whatever its copy says.
- One page, one search. Put the searcher's words in the title, the main heading and the opening paragraph. Google cannot rank a page for a phrase it never reads.
- A page that ranks but gets skipped needs a better title, not more content. A page that is not on page 1 yet needs a better answer and internal links, not a new title.
- Links are a ranking signal you fully control. Google: "Google uses links as a signal when determining the relevancy of pages and to find new pages to crawl."
- Rankings drift on their own. Judge a change against that drift, from the recrawl date, one change per page at a time.
What does SEO mean when your site is a codebase?
It means most ranking problems are bugs you can fix in a pull request. On a site built from a repo, the HTML Google reads, the status codes it gets and the links it follows are all produced by your code, so the technical half of SEO is ordinary engineering: return the right response, render the content, declare the canonical URL, and keep the link graph intact.
The other half is aim. Google ranks a page for a search when the page is the best answer to that search, and it decides what the page answers mostly from the words on it. Developers tend to name pages after features ("Insights", "Workspaces") rather than after what a buyer types into Google. Fixing that is copy work, but it lives in the same templates and Markdown files as everything else, so it ships the same way.
What is technical SEO for developers?
Technical SEO is everything that decides whether Google can crawl, render and index a page before anyone judges its content. Four parts of it sit squarely in a developer's code.
Status codes. Google treats the response code as the first answer about a page. A 2xx response goes on to "the indexing pipeline". A 4xx does the opposite: "URLs that are already indexed and return a 4xx status code are removed from the index." And "5xx and 429 server errors prompt Google's crawlers to temporarily slow down with crawling." Two developer bugs show up here more than any other. A missing page that returns 200 with a "not found" message reads as a soft 404 in Search Console. A deploy that briefly serves 5xx slows crawling across the site.
Canonicals and redirects. When the same content answers at more than one URL (trailing slashes, query strings, http and https), Google picks one to index. Your rel="canonical" is input to that choice, not a command: "indicating a canonical preference is a hint, not a rule." Redirects, sitemap entries and HTTPS all feed the same decision, so make them agree. If you remove a page, a server-side permanent redirect to its replacement is the cleanest signal. Fragments are a separate case: Google "does not use fragment identifiers in indexing", so /guide#setup is never a second page, even when Search Console reports it as one.
Rendering. Google processes JavaScript sites in three phases: crawling, rendering and indexing. It can render client-side apps, but content that only appears after scripts run arrives later and depends on rendering succeeding. Google's own advice: "server-side or pre-rendering is still a great idea because it makes your website faster for users". Links are stricter still: "Google can only discover your links if they are <a> HTML elements with an href attribute." A <div> with a click handler is not a link to a crawler.
Sitemaps. A sitemap helps discovery and guarantees nothing. Google says "it doesn't guarantee that all the items in your sitemap will be crawled and indexed", and a small, well-linked site may not need one at all: "If your site's pages are properly linked, Google can usually discover most of your site." Generate it from the same route list your app serves, so it never lists a URL that redirects or returns 404.
When a page is not indexed, read the reason before touching code. The Pages report and URL Inspection tell you whether Google could not fetch it, chose another canonical, or crawled it and declined to keep it. Those three need three different fixes.
How do you aim a page at the search you want to win?
Give each page one search, and put that search's words where Google reads first: the <title> element, the main heading and the opening paragraph. Google cannot match a page to a phrase the page never uses. The most common miss on developer-built sites is a page that does exactly what the searcher wants and describes it in internal vocabulary nobody searches for.
Three rules keep this honest:
- One search per page. Two pages aimed at the same search compete with each other. A page aimed at five unrelated searches answers none of them well. Close wordings of one search ("keyword gap" and "keyword gap analysis") belong on the same page.
- Answer it near the top. A direct answer in the first paragraph reads as a stronger match than one buried in the fourth section, for Google and for the reader.
- Use the words people type. Search Console's queries report shows the exact phrases a page already appears for. That list is the best evidence of how your buyers describe the problem. Which keywords you rank for shows how to read it.
Google writes the title link in search results itself, and it "is completely automated", drawing on your <title>, headings and the anchor text of links to the page. So "write descriptive and concise text for your <title> elements" and keep the page's own heading in line with it. The title-writing guide covers picking the words from your own query data.
What do you fix first: the title or the content?
It depends on where the page ranks, and getting this wrong is the most expensive mistake in the list.
- On page 1 but rarely clicked: that is a title problem. The page is already seen; the result just loses to the ones around it. Rewrite the title for the search that finds it. Check the results page first, though: when an AI answer sits above the results, a lower click rate at a good position is often the answer taking the click, and no title wins that back. Low click rate at a good position covers telling the two apart.
- Ranking just off page 1: that is a ranking problem, and a new title will not fix it. Deepen the section that answers the exact search and add internal links to the page. Pushing a page from page 2 to page 1 walks through it.
- Not ranking at all: check indexing first, then whether the page uses the searcher's words anywhere. If it plainly does and is still nowhere, the results are held by older, stronger sites, and the honest move is to wait or pick a search you can win.
Try it
Point an SEO agent at your own site, not just an essay about one.
QueryScope holds the plan for your site, reads your real Search Console, and hands the coding agent you already have one change at a time to rank for the searches you decided to win. From $49/month, everything included.
Why do internal links matter so much on a developer site?
Because they are the one ranking signal entirely inside your repo. Google uses links "as a signal when determining the relevancy of pages and to find new pages to crawl", and reads the anchor text as a description of the target: "The better your anchor text, the easier it is for people to navigate your site and for Google to understand what the page you're linking to is about."
Developer sites tend to link by navigation only: a header, a footer and a docs sidebar that link everything to everything with the same generic labels. That tells Google little about any one page. What helps is a handful of contextual links from pages on the same topic, written as descriptive anchor text that is "relevant to the page that it's on and to the page it links to." Point those links at the pages that earn money: pricing, product and comparison pages. A guide like this one earns its keep through the link it sends, not the traffic it gets.
What can Search Console tell you, and what can't it?
Search Console is the only source of your real impressions, clicks and positions, and it is strong on exactly the two jobs above: indexing and how your pages perform on searches. It also has hard limits a developer should know before trusting a number.
- Query rows under-count. Rare searches are left out of the query table while their clicks still count in the page and site totals. Read volume at page level and treat the query list as evidence of wording, not as a total.
- Position is an average. It is averaged across every search a page appears for, so a real gain on one search can disappear inside the page's blended number. Read the position for the search you changed.
- Data stops at 16 months. Anything older is gone unless you stored it yourself.
- It is blind past the click and outside your site. No backlinks, no view of who ranks above you, nothing about signups or revenue.
How do you know a change worked?
Change one thing per page, note the date, and judge it from the day Google recrawls the page, against how much rankings move when nobody touches anything. That last part is the one most teams skip, and it is the one that decides whether a "win" was real.
Rankings drift on their own. Across about 46,000 page-days on six small and mid-sized sites, searches nobody touched moved a median of 1.9 places over a month, and further the lower they started. A climb of two places after a title change can be the change or the drift, and you cannot tell which without the comparison. Why Google rankings fluctuate has the full measurement.
Two habits make the reading trustworthy. Don't stack a second edit on a page while the first is still being measured, because the second change overwrites the baseline the first is judged against. And give it time: a title change needs a few weeks after the recrawl to read, a content change longer.
Running it as a loop from your editor
Done by hand, this becomes a spreadsheet: which searches you chose, which page each one is aimed at, what you changed on what date, and when each change is ready to judge. That bookkeeping is what slips first, which is how a team ends up re-editing a page that was halfway through being measured.
QueryScope runs that loop inside the IDE you already code in. Your agent reads the repo to work out what the site sells and proposes the searches its buyers make. QueryScope sizes each one against your own Search Console and keeps the plan. Then it hands back one change at a time: the search, the page and which fix applies. Anything that changes what a visitor reads waits for your commit. Each change is measured from Google's recrawl, and the page is not handed back while that measurement runs. It stops at the click: it can show whether a page moved, not whether the visitors bought.
Sources
- Google Search Central, How HTTP status codes, and network and DNS errors affect Google Search ("For Google Search, the next system is the indexing pipeline"; "URLs that are already indexed and return a
4xxstatus code are removed from the index"; "5xxand429server errors prompt Google's crawlers to temporarily slow down with crawling"). - Google Search Central, What is URL canonicalization ("indicating a canonical preference is a hint, not a rule"; canonicalization factors include HTTPS, redirects, sitemap presence and
rel="canonical"annotations). - Google Search Central, How to specify a canonical URL with rel="canonical" and other methods ("For the quickest effect, use HTTP (also known as server-side) redirects").
- Google Search Central, Ecommerce URL structure best practices ("Google does not use fragment identifiers in indexing").
- Google Search Central, Understand the JavaScript SEO basics (Google processes JavaScript web apps in three main phases: crawling, rendering and indexing; "server-side or pre-rendering is still a great idea because it makes your website faster for users"; "Google can only discover your links if they are
<a>HTML elements with anhrefattribute"). - Google Search Central, Learn about sitemaps ("it doesn't guarantee that all the items in your sitemap will be crawled and indexed"; "If your site's pages are properly linked, Google can usually discover most of your site").
- Google Search Central, Control your title links (title link generation is "completely automated"; "write descriptive and concise text for your
<title>elements"). - Google Search Central, SEO link best practices ("Google uses links as a signal when determining the relevancy of pages and to find new pages to crawl"; "The better your anchor text, the easier it is for people to navigate your site and for Google to understand what the page you're linking to is about"; good anchor text is "relevant to the page that it's on and to the page it links to").
- Google Search Central, A deep dive into Search Console performance data filtering and limits (rare queries are omitted from the query table while their clicks stay counted in the totals).
- QueryScope, Why Google rankings fluctuate (about 46,000 page-days across six sites; untouched searches moved a median of 1.9 places over a month).
Try it
Put an SEO agent in your editor.
Ask your coding agent what to work on. QueryScope reads your real Search Console, holds the searches you decided to win, and hands back one move at a time with the proof it worked. From $49/month, everything included. 1, 3 or 10 sites.