From 30de0d2687587637aa238b174b830d63644076d1 Mon Sep 17 00:00:00 2001
From: Ryan Westfall
Date: Thu, 2 Jul 2026 06:30:37 -0500
Subject: [PATCH] Improve agentic browsing readiness for aimloperations.com.
Add robots.txt, sitemap.xml, and llms.txt for crawlers and AI agents, fix accessibility tree gaps in forms and navigation, reduce layout shift on key pages, and document Lighthouse regression checks.
Co-authored-by: Cursor
---
company_site/docs/agentic-browsing.md | 45 ++++++
company_site/public/seo.py | 66 ++++++++
.../public/static/public/css/style.css | 147 +++++++++++++++++-
.../public/static/public/js/animation.js | 4 +
company_site/public/templates/base.html | 64 ++++++--
.../public/templates/public/contact.html | 36 +++--
.../public/templates/public/index.html | 9 +-
company_site/public/templates/public/llms.txt | 19 +++
.../public/templates/public/new_index.html | 2 +-
.../public/templates/public/robots.txt | 20 +++
.../public/templates/public/sitemap.xml | 10 ++
.../public/templates/public/web_design.html | 6 +-
company_site/public/tests.py | 47 +++++-
company_site/public/urls.py | 5 +-
14 files changed, 436 insertions(+), 44 deletions(-)
create mode 100644 company_site/docs/agentic-browsing.md
create mode 100644 company_site/public/seo.py
create mode 100644 company_site/public/templates/public/llms.txt
create mode 100644 company_site/public/templates/public/robots.txt
create mode 100644 company_site/public/templates/public/sitemap.xml
diff --git a/company_site/docs/agentic-browsing.md b/company_site/docs/agentic-browsing.md
new file mode 100644
index 0000000..c67bc33
--- /dev/null
+++ b/company_site/docs/agentic-browsing.md
@@ -0,0 +1,45 @@
+# Agentic Browsing Readiness
+
+This site targets Google's experimental **Agentic Browsing** Lighthouse category (v13.3+), which checks whether AI agents can read, navigate, and act on public pages.
+
+PageSpeed Insights does not yet expose this category. Run audits locally:
+
+```bash
+npx lighthouse@latest https://aimloperations.com \
+ --only-categories=agentic-browsing \
+ --chrome-flags="--enable-experimental-web-platform-features" \
+ --output=html --output-path=agentic-browsing-report.html
+```
+
+Test at minimum:
+
+- `/` (homepage)
+- `/contact` (primary conversion page)
+
+## What we ship
+
+| Check | Implementation |
+|-------|----------------|
+| **llms.txt** | `GET /llms.txt` — machine-readable site summary |
+| **robots.txt** | `GET /robots.txt` — crawl rules + sitemap reference |
+| **sitemap.xml** | `GET /sitemap.xml` — public marketing URLs |
+| **Accessibility tree** | Form labels, semantic nav controls, ARIA on dialogs |
+| **Layout stability** | Fixed cookie banner, reserved hero/marquee space, font fallbacks |
+
+WebMCP is intentionally deferred until browser and agent support stabilizes.
+
+## Regression checklist
+
+Before merging public-facing template or CSS changes:
+
+1. Contact form fields have associated `
+
-
+
Cookie consent
+
We use analytics tracking to understand how visitors use our site. Tracking runs only if you accept.
See our Terms of Service & Privacy Policy for details.
We use analytics if you accept. Privacy Policy
@@ -157,9 +159,41 @@
if (mobileBtn && navLinks) {
mobileBtn.addEventListener('click', function () {
- navLinks.classList.toggle('active');
+ const isOpen = navLinks.classList.toggle('active');
+ mobileBtn.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
+ mobileBtn.setAttribute('aria-label', isOpen ? 'Close menu' : 'Open menu');
});
}
+
+ function closeDropdown(dropdown) {
+ dropdown.classList.remove('dropdown-open');
+ const trigger = dropdown.querySelector('.nav-dropdown-trigger, .profile-icon-link');
+ if (trigger) {
+ trigger.setAttribute('aria-expanded', 'false');
+ }
+ }
+
+ document.querySelectorAll('.dropdown').forEach(function (dropdown) {
+ const trigger = dropdown.querySelector('.nav-dropdown-trigger, .profile-icon-link');
+ if (!trigger) {
+ return;
+ }
+
+ trigger.addEventListener('click', function (event) {
+ if (window.matchMedia('(min-width: 769px)').matches && dropdown.querySelector('.nav-dropdown-trigger')) {
+ return;
+ }
+ event.preventDefault();
+ const isOpen = dropdown.classList.toggle('dropdown-open');
+ trigger.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
+ });
+ });
+
+ document.addEventListener('click', function (event) {
+ if (!event.target.closest('.dropdown')) {
+ document.querySelectorAll('.dropdown.dropdown-open').forEach(closeDropdown);
+ }
+ });
});
{% block tracking_events %}{% endblock %}
diff --git a/company_site/public/templates/public/contact.html b/company_site/public/templates/public/contact.html
index 3f050ea..054b89b 100644
--- a/company_site/public/templates/public/contact.html
+++ b/company_site/public/templates/public/contact.html
@@ -6,7 +6,7 @@
{% block content %}
-
+
Get in Touch
Describe the workflow or bottleneck you want to automate—we will help you scope a forward-deployed solution.
@@ -32,24 +32,28 @@
{% endif %}