Build Journal
Agentic SEO & Security Enhancements for the Portal — August 24, 2026
I shipped significant agentic SEO and security enhancements today, including a real 404 page and AEO improvements for the portal's performance.
What shipped
- Real 404 Page — Implemented a functional 404 page returning proper status.
- Agentic SEO Upgrade — Added /llms-full.txt for enhanced LLM portal directory.
- Security Improvements — Enforced nonce-less CSP and added security.txt.
- Authentication Fix — Corrected /api/auth/me response for anonymous users.
- Performance Enhancements — Optimized caching and removed poweredByHeader.
Today, I focused on enhancing the agentic SEO and security features of the portal. I shipped 10 improvements and one critical fix over a solid five-hour session, pushing the platform closer to my vision of a one-man-show company with a billion-dollar valuation. The most notable changes included a real 404 page, enhancements in agentic SEO, and various security updates that are crucial for maintaining user trust and experience.
One of the key features I implemented was a fully functional 404 page that returns a proper 404 status instead of the previous soft-404 setup. This change was vital because the old redirect-to-map catch-all approach was causing dead/mistyped URLs to feed into Google Search Console with misleading data. This meant that instead of just guiding users to the correct location, I was inadvertently creating a noise problem with crawlers. By providing a real 404 status, I’ve ensured that users will not encounter dead ends, and crawlers will receive an honest status, which is essential for SEO.
In addition to the 404 page, I made significant strides in agentic SEO. I added a new endpoint, /llms-full.txt, which serves as an expanded directory for public portals, linking to per-portal LLMs and providing a comprehensive cost/metro/industry URL matrix. This enhancement is critical as agents increasingly probe this endpoint first, and having a complete resource available in one fetch can significantly improve user engagement and experience. It was a bit of a challenge to integrate this feature without causing downtime, but I managed to work through the dependencies and get it live.
Security also took a front seat in today’s builds. I enforced a full nonce-less baseline CSP policy and made several adjustments to allowlist certain trusted sources while tightening security overall. For instance, I added static.cloudflareinsights.com to the allowlist, which is essential for Cloudflare’s RUM beacon script to function correctly without breaking the site. The first-enforce-day console showed that both the Jitsi host and the Cloudflare insights were being blocked, so this fix was necessary. Moreover, I also added a security.txt file according to RFC 9116, which helps inform users about how to report security issues and gives the site a more professional touch.
I also tackled some performance issues, turning off the poweredByHeader to prevent the framework from being easily identified. I realized that some marketing assets were being cached unnecessarily, so I adjusted the caching strategy to ensure that these assets are now fetched more efficiently. The past few hours were spent diagnosing these performance bottlenecks, but I'm proud of the optimizations I achieved.
Another important fix was in the authentication process. Previously, the /api/auth/me endpoint was returning a 200 status with a user:null response for anonymous users instead of a proper 401. This was causing unnecessary red console errors on every page for signed-out visitors. I restructured the response to ensure that it correctly reflects the user's authentication state, which will improve the overall experience for users navigating the portal.
As a solo builder, I often find myself navigating through the complexities of building an agentic web platform. Utilizing Claude Code in VS Code has been invaluable, allowing me to maintain momentum without the added cost of collaborative tools. The flexibility of AI assistance has enabled me to push through bugs and features without losing sight of my goal. Each day, I am reminded that building this platform is a marathon, not a sprint, and while I celebrate the wins, I must remain vigilant about the challenges that come with operating solo.
Reflecting on the hours I invested today, I feel a sense of accomplishment. Each feature, every fix, and every optimization is a step toward my vision of a billion-dollar valuation. As I continue to iterate on the portal, I am excited about the potential impact it can have on the agentic web landscape. Tomorrow, I will dive deeper into user feedback and analytics to further refine the experience, but for now, I can rest knowing that today’s work has laid a strong foundation for what’s to come.