Bone Voyage keyword opportunities, and 10 ranking pages that are 404
Private deliverable. Enter the hub password to continue.
That's not right. Try again.
Bone Voyage keyword opportunities, and 10 ranking pages that are 404
Two of the dead pages held position one. The originals are still sitting on your old server.
You asked me to orchestrate agents to optimize every page, targeting the highest-volume dog term each page could realistically reach on page one. Before spending anything on data, I checked what we already had. It turned out to be a lot, and it changed what I think the first move should be.
First, your two direct questions
Were we caching DataForSEO? No. Every call went out live and was paid for.
That is now fixed: there is one cached client at
MyExecAssistant/scripts/dfs.py with a single shared cache, so if SEO Believer
has already paid for a keyword's search volume, Bone Voyage gets it free. It
records real cost from the API response rather than estimates.
Worth knowing: SEO Believer already had its own small keyword cache directory. So the habit existed on one project and nowhere else. Those should fold into the shared cache once you have looked at the format.
Had we ever pulled ranked keywords for this domain? No. One mention across Bone Voyage, SEO Believer and SEO Audit Report, in a planning document, with no data behind it.
Your account balance is $20.78. That is the real constraint on this project, and it is why the plan below is built around one cheap bulk pull rather than per-page lookups.
The data you already owned
content-audit/ahrefs-data/organic-keywords-peak-2024-03.json is an Ahrefs
export from your March 2024 peak: 200 keywords with volume, difficulty, position
and the ranking URL. It covers 138 URLs, and 71 of them ranked for more than
one keyword, which is exactly the situation you wanted to work on.
It is 17 months old, so treat every position below as a hypothesis rather than a fact. Re-checking a shortlist is the cheap part; generating the shortlist for free is the part that would otherwise have cost money.
The upgrade list
Pages that were ranking for several terms, where the biggest term was not the one they were winning. Sorted by volume against difficulty, so the genuinely reachable ones come first rather than the flashy ones.
| Page | Target term | Volume | KD | Position | Already winning |
|---|---|---|---|---|---|
| /mini-sheepadoodle/ | mini sheepadoodle | 13,000 | 5 | 10 | miniature sheepadoodle at 2 |
| /cane-corso-rottweiler-mix/ | cane corso rottweiler mix | 2,400 | 0 | 8 | the puppy variant at 3 |
| /meet-the-brown-goldendoodle/ | brown goldendoodle | 2,200 | 0 | 7 | the puppy variant at 2 |
| /cocker-spaniel-poodle-mix/ | cocker spaniel poodle mix | 3,700 | 4 | 8 | the english variant at 2 |
| /bichon-poodle-poochon.../ | bichon poo | 2,900 | 3 | 10 | bichon poodle adult at 1 |
| /golden-mountain-dog/ | golden mountain dog | 1,700 | 2 | 12 | full grown variant at 4 |
| /what-is-a-bait-dog/ | whats a bait dog | 2,300 | 7 | 4 | a long-tail variant at 1 |
| /can-dogs-eat-cheesecake/ | can dogs eat cheesecake | 1,200 | 0 | 9 | can dogs have cheesecake at 9 |
| /heart-to-tail-.../ | heart to tail dog food | 1,600 | 0 | 9 | the reviews variant at 7 |
| /can-dogs-have-grape-jelly/ | can dogs have grape jelly | 1,000 | 3 | 12 | is grape jelly bad at 1 |
| /mastiff-dog-a-comprehensive-guide/ | mastiff | 116,000 | 58 | 22 | mastiff dog at 12 |
| /cattle-dog/ | cattle dog | 36,000 | 59 | 18 | a long-tail variant at 12 |
The pattern is consistent and it is the classic one: the page wins the specific long-tail phrase and loses the broad head term to somebody else. In most of these the head term is worth 10 to 100 times the traffic.
The top of that table is where I would start. Mini sheepadoodle at 13,000 a month with a difficulty of 5, sitting at position 10, is about as clean an opportunity as this kind of analysis produces. Cane corso rottweiler mix and brown goldendoodle are difficulty zero.
The bottom two are the trap. Mastiff at 116,000 and cattle dog at 36,000 look like the prizes, and they are the two you are least likely to win. Difficulty 58 and 59 against a domain currently at rank 188 means page one is not realistically in reach, and chasing them would eat the effort that the top of the table would reward. That is the judgment your "that we can get on page 1" clause was asking for, and it is why the list is sorted this way rather than by raw volume.
Three I deliberately left out
/i/pets/dogs/best-coconut-oil-for-dogs/ was at position 4 for 1,100 a month,
and two sibling pages under /i/ were also ranking. They are excluded because
that entire directory is under a manual penalty and is intentionally serving 410
Gone. They are not an optimization opportunity, they are a separate and much
larger decision about whether that directory is ever coming back.
The thing I would do first
Ten translated pages that were ranking in March 2024 now return 404. Two of them held position one.
| Dead page | Top keyword | Volume | Position | Keywords it ranked for |
|---|---|---|---|---|
| /es/perro-akita-101-... | akita | 25,000 | 9 | 3 |
| /es/cachorros-blue-heeler-... | blue heeler | 13,000 | 4 | 34 |
| /fr/decouvrez-la-meilleure-race-de-petits-chiens... | petit chien | 2,900 | 13 | 1 |
| /es/el-papillon-el-perro... | papillon perro | 2,500 | 5 | 6 |
| /es/que-son-los-zoomies/ | zoomies | 800 | 7 | 1 |
| /es/adorable-pugapoo-... | pugapoo | 700 | 1 | 20 |
| /es/jackapoos-10-factores-... | jack a poo | 600 | 1 | 34 |
| /fr/que-sont-les-zoomies/ | zoomies chien | 500 | 8 | 1 |
| /fr/golden-mountain-dog-101-... | golden mountain dog | 250 | 5 | 5 |
| /es/conozca-al-mejor-companero... | raza de perro blue heeler | 200 | 25 | 1 |
These are the same /es/ and /fr/ URLs I found last week inside the dead
WPML language switchers. I removed the broken links because they pointed at
nothing. I did not realize at the time that the pages behind them had been
ranking, several of them well.
The blue heeler page alone was ranking for 34 keywords at position 4 on a 13,000 a month term. The jackapoo page was ranking for 34 keywords and sat at position one.
The originals are still live on your old WordPress server. I pulled three of them to check: HTTP 200, 400KB and up. This is the same recovery path that brought back the Rise of the Underdog study.
Two honest caveats. After 17 months of 404s Google has dropped these pages, so restoring them will not snap the rankings back; it starts the climb again with proven content rather than a guess. And the volume figures are the search volumes of the terms, not traffic you were receiving, so do not read 25,000 as 25,000 lost visits.
Even with both caveats, restoring content that already proved it can rank looks like better value than trying to move English pages that are already ranking, and it matches the partial Spanish parity your own project rules call for.
What I would spend, and on what
The naive version of this project, agents each pulling their own keyword data for 1,059 pages, would cost more than your balance and would stop halfway.
The efficient version is a few dollars, because one ranked_keywords pull
returns every keyword the domain ranks for with the ranking URL attached,
for the whole site at once. Per-page calls buy nothing extra.
- One cached ranked keywords pull, roughly $0.10, to replace the 2024 snapshot with current positions.
- Filter locally to pages at positions 4 to 30 with real volume. Free.
- One batched difficulty call across the shortlist, to test what is actually winnable from rank 188 rather than assuming.
- SERP checks on the finalists only, about $0.003 each.
- Then the agents, rewriting titles, descriptions, headings and schema. That part is language work, runs on DeepSeek for pennies, and needs no DataForSEO at all.
Steps 1 to 4 are one careful pass, not a fan-out. Agents earn their keep at step 5, where there is genuinely parallel per-page writing.
Two things I still need from you
A rule for trading positions. A page at position 12 for a 40,000 term and position 3 for a 900 term is a real decision. Chasing the big one can cost you the small one you already own. Do you want a floor, never sacrifice an existing top-5 position, or is that a gamble worth taking?
Whether indexing comes first. You have 1,116 pages built and I do not know how many Google has actually indexed. That is a Search Console question, not a DataForSEO one. If a large share is unindexed, ranking work on those pages is wasted until that is solved, and it would change the order of everything above.
Published to Annette's hub. Rebuilt from the source markdown, so edit the source and rerun rather than editing this page.