How I'm Making My Portfolio Findable by Google and AI Search A developer rebuilt a 17-project Next.js portfolio for search visibility after Google Search Console showed just one indexed page, eight unindexed pages and a single click. The work included splitting the site into English and Arabic route groups with reciprocal hreflang and self-canonicals, regenerating llms.txt and a build-time llms-full.txt listing all 17 projects, expanding the sitemap to 40 URLs, adding FAQPage structured data in both languages, and explicitly allowing 11 AI crawlers in robots.txt. The developer noted that log research across 83 sites found GPTBot fetched llms.txt only 7 times and ClaudeBot 9 times over three months, and said results would be measured against the baseline on 13 November. My portfolio is a Next.js site with 17 live projects. In early November I opened Google Search Console and found the truth: one search click in total, one page indexed, eight pages not indexed. Google knew the site existed and had mostly not bothered to read it. I spent a week fixing that. This is what I did, in the order I did it. I researched first, and the bottleneck was not the writing or the design. It was that Google had not indexed the pages. AI search has the same problem in a different shape: most AI crawlers do not run JavaScript, so anything that only appears after the page loads is invisible to them. That decided the whole plan. Put the facts in the first HTML the server sends. I split the site into English and Arabic route groups, with self-canonicals and reciprocal hreflang, so each language is its own page instead of one page with a toggle. I rewrote llms.txt, added a full llms-full.txt that is generated on every build and lists all 17 projects, rebuilt the sitemap to 40 URLs, and resubmitted everything to IndexNow, which answered 202. The FAQ grew from 5 questions to 8 in both languages, with matching FAQPage structured data per language, and robots.txt now explicitly allows 11 AI crawlers. Two honest notes. First, the research says llms.txt is barely read: in one log study across 83 sites over three months, GPTBot fetched it 7 times and ClaudeBot 9 times. I did it anyway because it costs nothing, but it is not the lever. Second, I removed every mention of one city from the site and deleted its page, knowing it means giving up ranking for that city's searches. That was a deliberate trade, not an accident. I also removed the contact form and replaced it with social links and an email card, because a form nobody uses is just weight on the page. Whether any of it worked. The check is Friday 13 November, when I look at Search Console again and compare against the baseline: 1 indexed page, 8 not indexed, 1 click. Two articles on dev.to went live on 9 November as part of the same push, one about the schools dataset and one about a database migration, to give Google fresh pages to find. If the numbers move, I will write the follow-up with the real numbers. If they do not, I will say that too.