seotools.pro Blog

How Levels.fyi Gets 148K SEO Visits a Month

Levels.fyi gets about 148K US search visits a month from its pay pages. Here are 9 lessons you can copy, plus the old links it may be wasting.

Levels.fyi gets about 148K visits a month from Google in the US, and it wins them with a pay page for every company, job and city people ask about.

Levels.fyi is a site where tech workers share what they're paid. It turns those numbers into pages, like one for what Google pays its coders.

We ran it through our whole SEO toolkit. We found what makes those pages win, and old addresses that may be wasting their links.

Here are 9 lessons you can copy, plus the part you can't.

Build a page for every pay question

We started with our Organic Traffic Checker. It estimates a site's organic traffic, meaning the people who find it on Google without ads.

seotools.pro Organic Traffic Checker for levels.fyi, United States, 4 October 2026: 147,825 estimated monthly visits, no year-over-year figure, a branded share of 41 percent of the traffic across the 100 keywords sampled, a monthly trend that starts near 110K in November 2025, peaks near 200K and ends near 148K, and a top organic pages table led by the homepage with 21.7K visits and a 14.7 percent share for levels fyi at #1, then /t/software-engineer with 7.6K for salary software engineer at #2, /companies/google/salaries/software-engineer with 1.8K for google software engineer at #2, /h1b/ with 1.7K for h1b salary at #1, and /t/software-engineer/locations/new-york-city-area with 783 for software engineer salaries at #1.
What to notice: about 148K visits, and most top pages below the homepage answer a pay question.

That's about 148K visits a month in the US. The homepage gets about 15% of them, mostly from people typing "levels fyi".

Now look at the rest of the list. Most of the other pages answer one pay question, like what a coder earns or what Google pays.

The next biggest page is the one for software engineers, or coders. It gets about 7.6K visits and ranks 2nd for "salary software engineer".

Levels.fyi role page titled Software Engineer Salary, showing median total pay and percentiles for the role
What to notice: the answer, the middle pay, sits right at the top.

The page gives you the answer first: the middle pay, then the low and high ends. Then it lets you narrow it down by company.

Each company gets the same treatment. Here's the page for coders at Google.

Levels.fyi company page for Google, Salaries tab, titled Google Software Engineer Salaries, showing pay by level
What to notice: one company, one job, one page, with pay broken down by level.

It ranks 2nd for "google software engineer". A page for coders in New York ranks 1st for "software engineer salaries".

So the site isn't one big page about pay. It's a page for each mix of company, job and city.

This is programmatic SEO, which means building many pages from one template and a table of data. Wise, which we studied too, also builds pages from mixes of data.

Docker Hub, which we studied too, gives every product its own page in the same way.

The Traffic tab of our Website Audit shows the picture for the whole world.

seotools.pro Website Audit Traffic tab for www.levels.fyi: 270,464 monthly visits, 100 percent organic (270,464) and 0 percent paid, and top countries US 54.7 percent, India 15.6 percent, UK 8.7 percent and Canada 7.4 percent, with others at 13.7 percent.
What to notice: about 270K visits worldwide, and India comes 2nd.

Worldwide, it's about 270K search visits a month. The US sends just over half, and India sends about 1 in 6.

So build a page for each question your data can answer, and give it a plain name. Then see which ones earn you visits with our Organic Traffic Checker.

Match the words people search

The Keywords tab of our audit lists the searches a site ranks for, its spot in Google and the visits each one sends.

seotools.pro Website Audit Keywords tab for www.levels.fyi: 438.2K ranking positions split into 50.2K at positions 1 to 5, 31.3K at 6 to 10, 55.1K at 11 to 20, 159.1K at 21 to 50 and 142.5K at 51 to 100, a keyword cannibalization warning that 4 terms rank from multiple URLs: levels fyi (2), software engineer salary (2), waymo careers (2) and data scientist salary (2), and rows for levels fyi at position 1 with 74K searches and 13.6K visits to www.levels.fyi/, software engineer salary at position 1 with 33.1K searches and 905 visits to /t/software-engineer, h1b salary at position 1 with 3,600 searches and 603 visits to /h1b/, and nyc boroughs at position 3 with 27.1K searches and 835 visits to /atlas/new-york.
What to notice: plain pay searches rank 1st, and an atlas of New York ranks 3rd.

"Software engineer salary" is searched about 33K times a month, and Levels.fyi ranks 1st. It also ranks 1st for "h1b salary", the pay for people on a US work visa.

Those pages use the exact words people type. The page is called "Software Engineer Salary", and so is the search.

Then there's a surprise. A guide to New York's boroughs ranks 3rd for "nyc boroughs", a search that has nothing to do with pay.

It's a side project called "a living atlas of New York". It brings in readers who'd never search for a salary.

NerdWallet, which we studied too, is another site that wins searches about money.

Our Domain Overview shows how many searches that adds up to.

seotools.pro Domain Overview for levels.fyi, analyzed 4 October 2026: 232.7K organic keywords, 147.8K organic traffic, a traffic value of 197.9K dollars, an estimated average position of 40, no paid keywords, paid traffic or paid cost, a position distribution chart whose longest bar is positions 21 to 50, and keyword movement of 13.7K new, 430 improved, 177 declined and 63.3K lost.
What to notice: an average position of 40, and far more keywords lost than gained.

Levels.fyi ranks for about 233K searches. Its traffic value, what those visits would cost as Google ads, is about $198K a month.

But its average spot is 40, on page 4 of Google. And it lost about 63K keywords while it gained about 14K.

So use the words your readers type in your page names, and find them with our Keyword Research tool. Then watch the ones you're losing in our Rank Tracker.

Give each page just one address

Look back at the warning above the keyword rows. It flags keyword cannibalization, when your own pages compete for the same search.

4 searches each land on 2 Levels.fyi pages. One of them is "levels fyi" itself.

The full list shows you why. The homepage ranks at its plain address.

It also ranks at a second address that ends in /index.html.

That's one page with 2 addresses. Google may treat them as 2 pages and split the credit between them.

The fix is a 301 redirect, a rule that sends people and Google from one address to another for good. Send /index.html to the homepage, and the split goes away.

Levels.fyi gets this right in another spot. Our free browser extension shows you how.

Open any page, click the seotools.pro icon, and a panel opens beside it with SEO checks. We opened the Google page with a country code on the end of its address.

The seotools.pro browser extension Issues tab on the Levels.fyi Google Software Engineer Salaries page: 1 critical, 3 warnings, 3 notices and 28 passed, led by Page is not indexable because the canonical points to a different URL, then Canonical points to a different URL, Meta description is too long (362), Images without alt text (20) and Heading levels are skipped (1).
What to notice: the version with a country code points Google to the plain address.

The extension flags it as "not indexable", which sounds bad. But it's on purpose.

The page carries a canonical tag, a line of code that tells Google which address is the main one. Here, it points to the plain address.

So every country version passes its credit to one page. That's how you handle filters and options without making copies.

So give every page just one address. Check each page's canonical with our free browser extension, and redirect any copies you find.

Point old addresses at new pages

Old addresses matter for one more reason, and that's links. A backlink is a link from another website to yours, and Google treats each one a bit like a vote of trust.

The Backlinks tab of our audit shows the same data as our Backlink Analyzer.

seotools.pro Website Audit Backlinks tab for www.levels.fyi: Domain Authority 86 out of 100, page authority 31 out of 100, 176.4K backlinks, 12,893 referring domains, 44 percent dofollow, 211 from homepages, 8,553 dofollow domains, 99,210 nofollow links, 118.4K text links, 7,748 referring IPs, 3,640 referring subnets, 1,393 .edu links and 608 .gov links, and a most linked pages list: www.levels.fyi with 76,353 links and 5,932 refs, the Agoda software engineer salaries page with 8,275 links, http://levels.fyi with 1,406 links and 1,837 refs, the Google software engineer salaries page with 1,000 links, www.levels.fyi/comp.html, and the old-style address www.levels.fyi/company/Google/salaries/Software-Engineer with 716 refs.
What to notice: an old address for the Google page still has 716 sites linking to it.

Levels.fyi has about 176K links from about 12.9K referring domains, meaning websites that link to it. Its Domain Authority, our 0 to 100 score for link strength, is 86.

That's strong, but only 44% of those links are dofollow, meaning they pass trust. The rest carry a tag that asks Google not to count them.

Now look at the bottom of the most linked list. You'll see an address in an old style, /company/Google/salaries/Software-Engineer.

Today's page lives at /companies/google/salaries/software-engineer. Yet the old one still has about 716 sites linking to it.

The audit's data shows the same for /comp.html, with about 735 sites. Both look like addresses from before a redesign.

Each of those sites once linked to a real page. If the old address doesn't send you on with a 301 redirect, that trust goes nowhere.

If you run a big site full of lists, like Meetup or Eventbrite, which we studied too, check this each time you redesign.

So list your old address styles, and redirect each one to the page that replaced it. Then see which old addresses still get links in our Backlink Analyzer.

Work with us
Make your old links count again

Hundreds of sites still link to Levels.fyi addresses from an older design. We find the old addresses on your site that still earn links, then point each one at the page that replaced it.

  • We list every old address that still gets links
  • We send each one to the right new page with a 301 redirect
  • We fix copies of the same page, like /index.html
  • SEO and GEO, so AI answers can quote you too
Book a free consultation β†’ See our SEO and GEO services β†’

Put the answer in your title

Once you rank, your title has to win the click. The extension's Overview tab shows you the title and description of a page.

The seotools.pro browser extension on the Levels.fyi Google Software Engineer Salaries page: canonicalized to another URL, an SEO score of 80 out of 100 with 1 critical issue, 3 warnings, 3 notices and 28 passed, organic traffic of 270.5K per month and 227.1K backlinks, a title of 60 of 60 characters, Google Software Engineer Salary | $215K-$1.86M+ | Levels.fyi, and a description of 362 of 160 characters that gives pay in a local currency and says Levels.fyi tracks 24,311 Software Engineer salary submissions at Google.
What to notice: the pay range sits right in the title.

The Google page's title is "Google Software Engineer Salary | $215K-$1.86M+ | Levels.fyi". It shows you the answer in the results before you even click.

That's smart. Someone checking Google pay sees a real number and wants the details.

The description is the short summary Google may show under your title. This one runs 362 characters, when Google shows about 160.

Now compare the main page for coders.

The seotools.pro browser extension on the Levels.fyi Software Engineer Salary page: canonicalized to another URL, an SEO score of 76 out of 100 with 1 critical issue, 4 warnings, 4 notices and 26 passed, organic traffic of 270.5K per month and 227.1K backlinks, a title of 24 of 60 characters, Software Engineer Salary, and a description of 180 of 160 characters saying the median Software Engineer salary is given in a local currency, based on 51,030 salary submissions.
What to notice: a short title with no pay figure, and a long description.

Its title is just "Software Engineer Salary", 24 characters long. It scores 76, lower than the Google page's 80.

The seotools.pro browser extension Issues tab on the Levels.fyi Software Engineer Salary page: 1 critical, 4 warnings, 4 notices and 26 passed, listing Page is not indexable, Canonical points to a different URL, Title is too short (24), Meta description is too long (180), Images without alt text (8) and Heading levels are skipped (4).
What to notice: the short title and the long description are both on the list.

The Issues tab flags both. The title could add a pay range, the way the Google page does.

The audit found copies too. The same description, "Helping people make better career decisions", sits on 3 pages.

seotools.pro Website Audit Technical SEO tab, Duplicate content for www.levels.fyi: duplicate titles on 7 pages, including Levels.fyi Community on 3 pages, Compensation Benchmarking by Levels.fyi on 2 and Highest Paying Software Engineer Jobs | Levels.fyi on 2, and duplicate descriptions on 13 pages, including Helping people make better career decisions on 3 pages and Use real-time data to benchmark compensation and view percentiles by title and location. on 2.
What to notice: 13 pages share their description with another page.

When pages share a description, you can't tell them apart in the results. Each page needs its own.

So put the answer in your title, like a pay range or a price. Then write a short, unique description for each page with our Meta Tag Generator.

Mark up each page in code

Structured data is code that tells Google what a page is. The extension's Structured tab looks for it.

The seotools.pro browser extension Structured tab on the Levels.fyi Google Software Engineer Salaries page: eligible for Breadcrumbs and FAQ rich results, with 3 valid JSON-LD blocks: OccupationAggregationByEmployer, BreadcrumbList and FAQPage.
What to notice: 3 blocks of code, all valid, including one just for pay at one company.

The Google page has 3 blocks of it, and all are valid. One is a special type for the pay in one job at one firm.

The page can also get rich results. These are extras, like a trail of links or a list of questions, that Google can add to your listing.

The seotools.pro browser extension Structured tab on the Levels.fyi Software Engineer Salary page: eligible for Breadcrumbs and FAQ rich results, with 3 valid JSON-LD blocks: Occupation, BreadcrumbList and FAQPage.
What to notice: the job page uses an Occupation type instead.

The job page does the same with an Occupation type. Each template gets code that fits it.

The Content tab shows you what's missing.

The seotools.pro browser extension Content tab on the Levels.fyi Software Engineer Salary page: a readability score of 0 out of 100, main content of 957 of 1,182 words with 19 percent boilerplate, E-E-A-T signals with no author byline, no visible publish or update date, no datePublished or dateModified in schema, no author as Person schema and no sameAs links, but 9 cited external sources, and readability metrics of Flesch reading ease 0, very difficult, a Flesch-Kincaid grade of 23.2 and 34 words per sentence on average.
What to notice: no author or date in the code, and long lists that read like one huge sentence.

There's no author and no date in the code. Yet the page says "Last updated" right on it, so Google has to guess.

The reading score is 0, because long lists of company names read like one giant sentence. That's fine for a list, but a short intro would help you.

More and more people ask AI tools what a job pays. So we checked which AI tools may read Levels.fyi.

The seotools.pro browser extension on the Levels.fyi Google page showing the URL https://www.levels.fyi/companies/google/salaries/software-engineer, a canonical that points to a different URL without the country code, and AI search readiness: llms.txt available, and AI crawler access from robots.txt with GPTBot, ClaudeBot, Google-Extended, CCBot, Bytespider, meta-externalagent, Applebot-Extended, Amazonbot and anthropic-ai blocked and only PerplexityBot allowed, with a robots tag of index, follow, notranslate.
What to notice: 9 of 10 AI crawlers are blocked, yet there's an llms.txt file.

The rules live in robots.txt, a file that tells crawlers what they may read. A crawler is a program that visits pages the way Google does.

Levels.fyi blocks 9 of the 10 AI crawlers the extension checks. Only PerplexityBot gets in.

Yet it also has an llms.txt file, a short guide that explains a site to AI tools. And its pages push its own AI tools that serve live pay data.

That looks like a choice. Keep the data for its own AI tools, and don't hand it to anyone else's.

Decide your own rules with our robots.txt generator. Then check whether AI tools mention you with our AI Visibility Checker.

So add code that says what each page is, who wrote it and when it changed. Our Schema Markup Generator writes it for you.

Know your real rivals

Some pay searches go to other sites. The audit's Competitors tab shows you who.

seotools.pro Website Audit Competitors tab for www.levels.fyi, 6 organic competitors: 6figr.com with 28.1K shared keywords, 18.2K traffic and 48.1K missing; thesalarynegotiator.com with 1,745 shared, 605 traffic and 1,688 missing; whatisthesalary.com with 834 shared; h1bdata.info with 5,606 shared, 3,407 traffic and 19.7K missing; nodeflair.com with 5,391 shared and 20.9K missing; and repvue.com with 6,455 shared, 12K traffic and 29.1K missing.
What to notice: 6figr shares the most searches, and ranks for about 48K that Levels.fyi misses.

The top rival, 6figr.com, is another pay site. It shares about 28K searches with Levels.fyi.

It also ranks for about 48K searches that Levels.fyi doesn't. That "missing" column is a ready-made to-do list.

You can see each search a rival wins, and decide whether you need a page for it. A site named for work visa data, h1bdata.info, shares about 5.6K searches too.

So check who shares your searches with our Competitor Analysis, then go through the ones you're missing.

Audit your page templates

The extension checks one page at a time. Our Website Audit checks hundreds at once, so you can spot the problems that repeat.

It checked 249 pages, and Levels.fyi scored 80 out of 100. The report rates that as good.

seotools.pro Website Audit Overview for www.levels.fyi: a domain health score of 80 rated good, an audit grid with title issues on 142 pages, description on 218, headline on 116, content on 14, speed on 9, keywords on 120, images on 136, social on 0 and links on 21, 52 critical errors, 330 warnings and 744 notices, Domain Trust 86 of 100 and 4M pages indexed.
What to notice: a good score of 80, with 52 critical errors to look at.

The Issues tab sorts the problems by how much they matter to you.

seotools.pro Website Audit Issues tab for www.levels.fyi: critical errors for external JavaScript broken or redirected on 18 pages, external CSS broken or redirected on 17, a sitemap that lists non-canonical pages on 6, no internal links pointing to a page on 3, same title as other pages on 2, images missing (4XX) on 2, and 1 page each for a service page not indexable, images loading through redirects, a 4XX error and a canonical tag pointing to a redirect, plus crawl health of 234 2xx, 14 3xx, 1 4xx and 0 5xx, 231 of 249 indexable, 11 broken links, 11 quick-win keywords, an organic value of 102.7K dollars a month and 3 priority actions.
What to notice: scripts and style files from other sites top the list.

The top 2 errors are files that load from other sites. Scripts on 18 pages and style files on 17 are broken or get sent somewhere else.

Those come from a few shared templates, like the pages about job perks. Fix the template, and every page built on it gets better.

Next comes the sitemap, the file that lists a site's pages for Google. It lists 6 pages that point Google to a different main address.

The Technical SEO tab shows which pages Google may list.

seotools.pro Website Audit Technical SEO tab, Indexability, for www.levels.fyi: 93 percent of the crawl indexable, 231 of 249 pages, 3 noindex, 14 redirects, 1 error, 3 pages with blocking robots rules, and 185 indexable pages missing from the sitemap.
What to notice: most pages can be listed, but 185 are missing from the sitemap.

About 231 of the 249 pages can be listed by Google. That's 93%, which is great.

But 185 of those pages are missing from the sitemap. So Google has to find them through links alone.

You don't have to work out what to fix first. The audit's AI tab writes the plan: a short summary, each problem with how to fix it, and a 90-day to-do list.

seotools.pro Website Audit AI tab for www.levels.fyi: an executive brief saying Levels.fyi is strong on brand demand and core visibility but held back by a 404 service URL, a canonical pointing to a 3XX, duplicate titles, missing metadata and image and script problems, a 4XX HTTP status codes problem about the negotiation service URL with how to fix it, and a 90-day improvement plan whose first 30 days hold 4 tasks, starting with a high-priority task to restore or redirect the 404 negotiation service URL.
What to notice: the first task is a broken page that needs a redirect.

For Levels.fyi, the first job is a broken page for its pay talks service. The plan says to bring it back or redirect it.

That's the same lesson as the old addresses. Dead ends waste the links and visits that reach them.

So check the templates your pages share: the scripts, the titles, the descriptions and the sitemap. Run our Website Audit, fix one template, and hundreds of pages get better at once.

Fix slow taps on phones

The Performance tab of the audit shows Core Web Vitals. These are Google's 3 checks of how fast a page loads, how fast it reacts and whether it stays still, taken from real people's phones and computers.

seotools.pro Website Audit Performance tab for www.levels.fyi, Core Web Vitals field data: mobile LCP good at 87 percent good and 6 percent poor, mobile CLS good at 86 percent good and 5 percent poor, mobile INP needs work at 69 percent good and 6 percent poor, desktop LCP good at 92 percent good and 4 percent poor, desktop CLS good at 89 percent good and 5 percent poor, and desktop INP good at 93 percent good and 1 percent poor.
What to notice: 5 of 6 checks pass, and the miss is how fast phones react to a tap.

Levels.fyi passes 5 of the 6 checks. Its pages load fast and stay still, on phones and on computers.

The one miss is how fast phones react. About 69% of phone visits see the page respond quickly to a tap, so about 1 in 3 wait.

Pay pages are full of filters, tables and charts. Each tap on a filter runs code, and on a slow phone that adds up.

On the homepage, the audit points to code that isn't squeezed down. It also says the main content loads slowly in a lab test.

So test your busiest pages on a phone, and trim the code behind each filter. Our Site Speed tool shows what slows each page down.

Try it on your site
See which pages earn your visits

Most of Levels.fyi's top pages each answer one pay question. Our Organic Traffic Checker shows your monthly visits, your trend and the pages that earn them, so you know which ones to build more of.

  • The same report that measured Levels.fyi
  • Your top pages and the search behind each one
  • Run it on any rival's domain too
Check a domain

What you cannot copy

First, the part you can't copy: the data. Real people share their pay, and the Google page alone draws on about 24K entries for coders.

That's what other sites link to, and what people search for by name. The domain dates back to 2016, so it's had years to build that trust.

Now a few honest notes on the numbers.

Correct the snapshot date to one before publication, or update the publish date. The 148K figure counts US searches only, and the 270K figure counts the whole world.

All of these are estimates. Nobody outside Levels.fyi can count its real visits, so tools guess them from rankings and how often people search.

Tools count links in their own ways too. Our extension shows about 227K backlinks and the audit shows about 176K, so we quoted the audit.

Our screenshots show pay in a local currency, not US dollars, because of the site's money switch when we took them. The page titles quote US dollars.

On the real pages, you can pick your own.

We opened 2 pages with a country code in the address. That's why the extension calls them "not indexable", and it's the canonical tag doing its job.

Our crawl checked 249 pages, a small sample of a very big site. So we used it to find problems that repeat, not to count every error.

The one number to take away

41%.

That's the share of Levels.fyi's search visits that come from people typing its name, in the searches we sampled.

The rest come from people asking a pay question, like what Google pays a coder. A page built for that exact question answers them.

That's the lesson for any site that sits on data. Each question your data can answer can be its own page.

What could your data answer? Check which of your pages already win, the way Google would.

You can run every one of these checks on your own site, and on your rivals', and see the same numbers for yourself.

Frequently asked questions

How many pages should I build from one template?

Build as many as you have real data for. A page with a name and no numbers adds little, so start with the mixes people search for most.

How do I stop thin pages from hurting my site?

Set a minimum, like enough entries to show a fair average, before a page goes live. Keep pages under that line out of Google with a noindex tag until they fill up.

Should every filter get its own address?

Only the ones people search for, like a city or a level. For the rest, use a canonical tag that points to the main page.

How do I find old addresses that still get links?

Look at your most linked pages in a backlink tool, and spot any address style you no longer use. Then open each one to see where it lands.

Is a 301 redirect better than a canonical tag?

Use a redirect when the old page shouldn't exist any more. Use a canonical tag when both versions need to stay, like a filtered view.

Should I put prices or pay ranges in my titles?

Yes, if the number is real and you keep it up to date. A stale number in a title can cost you trust and clicks.

Should I block AI crawlers like Levels.fyi does?

It depends on how you make money. If your data is what you sell, blocking can make sense, but if you want AI answers to name you, let them in.

How often should I audit a site built from templates?

Once a month is a good start. Run it again after any change to a template, since one change hits every page built on it.

Blog