Code Like a Girl
Your Best Post is Hiding From Google
This story was first published in our Substack publication. The same lessons Jenny learned for Substack AEO and SEO apply to Medium as they do for Substack, and I have made small updates to this story so that the Medium instructions can be found here too.
♦Image Source: Image created with ChatGPT of Jenny’s avatar.You wrote the post. It’s genuinely useful. And almost no one found it.
That is the frustrating part of writing online: publishing good work does not mean Google will surface it, or that ChatGPT, Claude, or Perplexity will ever discover it.
For women writing in tech, that can mean some of our best expertise stays buried while readers search for exactly the answers we already wrote.
So we wanted to understand what actually helps a Substack post get found.
Jenny Ouyang has written for Code Like a Girl here on Medium for a long time. She learned SEO and AI search almost by accident. Last year, she asked ChatGPT a question and watched it recommend her own app, Substack Explorer. She had only a few dozen users. She had barely promoted it. Yet somehow ChatGPT had found it.
That sent her down a rabbit hole: How had her work made it into AI search? What could Google see on a Substack page? Why did some posts rank while others disappeared?
The first thing she did was set up Google Search Console, a free dashboard that shows which of your pages Google has and the exact words people typed to reach them. Then she started handing that list of real searches to AI and asking what she should write next.
Months of experiments later, she had answers. And, more importantly, a practical playbook any Substack writer can use to make their work easier to find on Google and more likely to surface in AI-generated answers.
SEO and AI Search Are One JobMost writers treat ranking on Google and getting into ChatGPT’s answers as two projects. Jenny’s whole point is that they are one.
“The AI tools do not read the whole internet by themselves,” she says. “They ask a search engine, take the top results, and write an answer from those.”
Gemini asks Google.
Claude asks Brave.
ChatGPT started on Bing.
So if a search engine can’t find your page, then AI isn’t going to either.
She is careful about how far that goes. Ranking well on Google does not guarantee an AI cites you. But if Google has never indexed your page, your odds with AI fall to almost nothing.
“Doing badly in one almost certainly means you do poorly in the other.”
Search is the doorway, and getting through it is the whole first half of the work.
Start By Seeing What Google Already KnowsWe set up Search Console on Code Like a Girl a while ago. It’s part of why we asked Jenny to share her knowledge on SEO and AEO.
Setup takes about ten minutes, and Lidiya Kesarovska has a free walkthrough for connecting a Substack publication.
Substack SEO: Connect Your Publication to Google Analytics & Search Console [Step-by-Step Tutorial]
Add Google Analytics if you want to see what readers do once they land. Search Console is the one that tells you whether Google is sending anyone at all.
Note to Medium Writers: Medium used to allow Google Analytics to be connected to our publications. We used it on Medium for a few years. But they removed the ability to do this some time ago in favour of their own analytics. It’s annoying but true.
Here is what our Search Console data shows.
♦Image Source: Screenshot of six months of clicks and impressions for Code Like a Girl.♦Image Source: Screenshot of the keywords that are leading to those impressions and clicks.♦Image Source: Screenshot of the pages people are clicking on.If you look closely, you will see that our top post is getting almost 70% of all our clicks.
Guess who wrote it?
Make the Most of Claude Code: 12 Projects From Your First Prompt to a System That Runs Itself
It’s Jenny’s Claude Code projects guide, and it earns about twenty times the clicks of our next-best post. It sits on the first page of Google for searches like “claude code projects for beginners.”
We asked her why that one landed so well.
“People are craving examples, and what they want is examples with real taste behind them: someone who did the work and can tell you which ones will work and why.”
Then the structure did its part.
“The title says the search, the projects come first with a difficulty label on each, and the page is public so every crawler can read it.”
It ranked on Google first, and the AI tools followed. It worked well enough that bigger places copied it, and one person even lifted her opening word for word. 🤦🏼♀️
The Substack/Medium PlaybookHere is the part you can act on this week. Every lever below is one a Substack or Medium writer controls, no developer required.
Start with the question, not your ideaJenny had a list of more than four hundred article ideas that gave her nothing for months.
“I was only ever asking which of my ideas was the best one. I never asked whether anybody was looking for it.”
So she checked the list against what people actually type into Google.
“That flipped the question from which idea do I like most to which idea does someone out there need.”
Once the question is one a real person searches, the keyword is already inside it, and the shape is simple: give the answer first, then show how you got there.
Jenny warns us not to crowd the space. If three of your posts already compete for the same search, do not write a fourth.
Write the first paragraph for the machine and the skimmer at once“A person skims. A machine turns your first paragraph into numbers and files the page away by them.”
So the opening has to say what the post is about and name the real things in it: the tool, the problem, the result, in plain words, in the first few lines.
The warm-up about how you felt before you figured it out costs you the whole piece. Jenny is honest that her own SEO guide opens with a warm-up, “a little embarrassing to admit now.” Now she aims instead for “the one sentence someone would quote if they only had room for one.”
Link your best post to your newest oneThis is her answer for the writer who is good and still invisible.
“On Substack you cannot touch the technical settings a web developer would, so links between your own posts are the main lever you control, and most writers never use it. One link from your most-visited post to a new one hands the new page a bit of trust it has no other way to earn.”Set your SEO titles
On Substack and Medium, your post has two titles: the headline your readers see, and the SEO title that Google shows in its results. Substack and Medium let them differ, and it is worth taking advantage of it.
Your Substack/Medium headline should be tailored to your readers. Something that they will find intriguing. It can make a bit of a statement, be playful, or contrarian. Its goal is to get people to click on the story.
The SEO title should be plain and literal, even a little utilitarian, because its only job is to match a search. You set it in the post’s SEO settings.
Substack
- Open your Substack draft
- Click the settings button in the bottom right corner.
- Scroll to the bottom of the pop-up window
- Expand the drop-down that says “SEO Options”
From there, you can set the SEO Title, SEO description, and Post URL. We ask Claude to generate all three for us on each post we publish.
♦Image Source: Screenshot of the SEO Options for our Substack Story on the same topic.Medium
- Open your Medium draft
- Click the three dots in the top right corner
- Choose More Settings
- Choose SEO Settings on the right side.
If you don’t set an SEO title, Substack and Medium will automatically fill it with the Header you put in the draft. It will fill the description with your subtitle if you have one, or a part of your first paragraph. This is a missed opportunity for search engines to find your story.
In May, Jenny did an audit of her SEO titles in the Google Search Console.
“Six of them had an empty or out-of-date SEO title. Google was already showing those six about seventy thousand times a week combined, and people were clicking at about a third of the normal rate for where they ranked. Filling in six fields should turn the same seventy thousand showings into a few hundred more clicks a week, for about half an hour of work.”
Her honest footnote:
“I still have not done it, so that number is the estimate, not the result.”
If she can put it off, so can you, which is the reason to go do it now. Here is a simple prompt you can use with an AI of your choice to help you build an SEO title and description from one of your own stories.
Here's my draft. Tell me whether it answers a question people search for or is more of an essay. Then give me three SEO titles under 60 characters, from most search-friendly to closest to my voice, two SEO descriptions under 155 characters, and a short URL slug. Search the web first to see how people phrase this, and don't invent any claims.
Keep the evergreen guide freeThe AI crawlers do not log in.
“GPTBot, ClaudeBot, PerplexityBot, none of them has a subscription. So anything behind a paywall or a login is invisible to them.”
Jenny’s rule is “sell narrow, talk broad.” The how-to that stays useful for years stays free and public, so search and AI can both read it. The paywall goes on the narrow topics and deep dives your existing readers pay for.
She has the uncomfortable numbers to match: three free pieces in July, two in August, one in September, and by late August new subscribers were arriving at about half of July’s pace. She cannot prove one caused the other, but she knows which lever she stopped pulling.
One thing not to doNever change a published post’s web address. In February, Jenny changed the address of her most-clicked page, and it became a page-not-found error overnight.
“That lesson was brutal, and I swear I’d never change the link of a published article ever again.”Getting Picked, Not Just Found
Once an AI can read your page, it still has to decide whether you are worth quoting.
While we were writing this, Karo (Product with Attitude) published a new piece on exactly that question. In it, Karo explains:
“ChatGPT took 7 months to find me. Claude took 6. Perplexity: under 3.”
Over sixty days, those citations brought her thirty-five subscribers from Perplexity and sixteen from Claude.
The test she runs before publishing anything: does this article contain
“a fact, result, phrase, framework or opinion an answer engine could only get from me?”
If three hundred other posts say the same thing, a model has no reason to pick yours. So she runs the experiment and reports the number, and she takes a position instead of writing a summary. Her shorthand is “test before tweeting.”
She also adds a lever Jenny’s internal links do not cover: links to you from other writers.
“When writers link to relevant work from others in their field, they’re helping build a semantic map of a topic.”
A post nobody links to is an island. She built a tool called LinkSwap, so Substack writers can trade a backlink.
Start HereThese four steps take about an hour, and they keep working long after you finish.
- Set up Google Search Console. It takes about ten minutes with Lidiya’s walkthrough linked above. It won’t show much at first, which is why it’s worth starting today.
- Fill in the SEO title and description on your three most-read posts. Find them in your Substack stats, open each post’s SEO Options, and use the prompt above if you want help. Once you have done that, don’t forget to do SEO for your next post.
- Link your most-visited post to your newest one. Add one sentence and one link to the older post.
- Make your best evergreen guide free and public. If your most useful how-to sits behind the paywall, search engines and AI tools can’t read it.
Once you’ve done those four, here’s what to try next.
Once: Add Bing Webmaster ToolsIt’s free, and it’s Search Console for Bing. ChatGPT started on Bing, and Jenny set it up right alongside Search Console. If you already have Search Console, Bing lets you import your site from it in a couple of clicks.
Every few months: Mine your search dataOnce Google Search Console has a few months of data, export it:
- In Search Console, go to Performance → Search results.
- Set the date range to the last 3 months.
- Click Export → Download CSV. You’ll get a zip file. Open it and keep Queries.csv and Pages.csv.
Attach both files to your favourite AI tool and ask it to:
- Find the posts Google shows, but people skip. Posts with plenty of impressions and very few clicks are where a better SEO title and first paragraph pay off first.
- Check your ideas list against real searches. Share your list of post ideas and ask which ones people are actually searching for. If three of your posts already compete for the same search, don’t write a fourth.
- Run Karo’s test before you publish. Does this post contain a fact, result, or opinion readers can only get from you? If not, add the experiment you ran or the position you actually hold.
- Link to other writers, and let them link to you. Point to relevant work from other women in your field. Links help readers and search engines see how a topic fits together, and a post nobody links to stays an island.
If you want to keep learning from Jenny Ouyang and Karo (Product with Attitude), they both write about this regularly and have built tools for it.
Follow Jenny at buildtolaunch. Her paid subscribers get her full toolkit, including the SEO and site-audit tools she mentions here.
Build to Launch | Jenny Ouyang | Substack
Karo’s full method is in her post. Her LinkSwap tool is part of her paid tier.
Product with Attitude | Karo (Product with Attitude) | Substack
♦Your Best Post is Hiding From Google was originally published in Code Like A Girl on Medium, where people are continuing the conversation by highlighting and responding to this story.