
Not leaving this place anytime soon.
This place has my heart. I go for an evening walk down this road after wrapping up my office work. This was my view today, full of yellow trumpetbush.

This place has my heart. I go for an evening walk down this road after wrapping up my office work. This was my view today, full of yellow trumpetbush.
I've spent the last 4 years learning and doing digital marketing, and along the way I've helped a bunch of newbies try to start their careers in it. With the AI wave now on top of everything, freshers are struggling harder than ever to get in. So let me be blunt about what actually works, because I've watched both paths play out.
There are only two.
Path 1 - if you want to start at a top brand or agency, join a proper program.
Not a random course. A program that actually does four things:
If a program can't honestly tick all four, it's not worth the fee. In India there are a few that come close - Kraftshala's Marketing Launchpad is the one I've personally seen deliver on this - but the point isn't the name, it's the checklist. Hold any program to those four things before you pay a rupee.
Path 2 - if you don't want to spend money, build the exact same thing yourself.
Give yourself 6 months. Go find one local business and offer to run their entire digital marketing for free for 6 months. Website, social accounts, ad accounts - set all of it up. Keep a small budget aside, run actual ads, do SEO, make content, learn everything off free YouTube. Fail, fix it, fail again, fix it again.
You're basically simulating what those paid programs do. The only real downside is you won't have mentors catching your mistakes for you. But honestly? Figuring out your own mistakes is the best teacher there is. Document everything as you go, turn it into a portfolio, and start applying for agency internships with that portfolio in hand. You'll do that part alone too - no one hands it to you.
And please stop believing anyone who tells you "just do a certification."
Certifications mean nothing on their own. Nobody hires you because you have a badge. They hire you because you can show you've actually run campaigns and moved numbers.
So that's it. Two paths: join a program that genuinely does the four things above, or build your own portfolio from scratch. Pick one and start. There is no third path.
I'm the solo SEO person at an Indian startup. We run a headless WordPress setup - content lives in WordPress, gets fetched at build time, converted to static HTML, and deployed. Clean setup, works well... until I realized Google couldn't see a chunk of our most valuable content.
I was auditing the content and checking why certain long-tail question keywords weren't ranking despite us having solid FAQ sections on our landing pages. The content was there on the page. Users could see it. But rankings? Nothing.
So I did the most basic diagnostic step that a lot of SEO folks skip: I right-clicked → View Page Source → Ctrl+F for the FAQ answer text.
It wasn't there.
The FAQ questions showed up. The accordion headings were in the HTML. But the actual answers - the content I'd written specifically to capture long-tail queries - were completely absent from the raw HTML source.
Our accordion component was doing something sneaky. When the page loaded, the FAQ answers weren't in the HTML at all. They were being injected into the DOM via JavaScript after the page rendered on the client side.
So here's what a user saw: click the accordion → answer appears → looks perfectly normal.
Here's what Googlebot saw: accordion headings with empty containers underneath. Zero answer content.
Yes, Google does render JavaScript. But it happens in a delayed second-wave crawl, and dynamically injected content (especially from API calls or complex JS) has no guarantee of being indexed. In our case, it clearly wasn't working.
Even on pages where some answer content was present in the DOM, I found another issue. The collapsed accordion state was using display: none on the answer containers.
Now, Google can index content behind display: none. But there's a well-documented ranking discount. Google treats CSS-hidden content as less important than visible content - which makes sense, because historically hidden text was a spam tactic.
The better approach for accordion collapse behavior is max-height: 0 + overflow: hidden. The content stays in the DOM, it's technically "visible" to crawlers, and it doesn't trigger the hidden-content discount.
I also found aria-hidden="true" on some FAQ headings - which is semantically incorrect and essentially tells screen readers (and crawlers that respect ARIA) to ignore that content entirely. It should have been aria-expanded="false".
Step 1: Get the answer text into the server-rendered HTML.
This was the big one. The FAQ answers needed to exist in the raw HTML response from the server - not injected after page load. In our headless setup, this meant making sure the static build included the full FAQ content, not just the question headings.
If you're on a standard WordPress/CMS setup, this usually means the content should be hardcoded in the template or rendered server-side. If your accordion answers only appear after a JS fetch or API call on the client side, crawlers will likely miss them.
Step 2: Fix the CSS collapse method.
Switched from display: none to max-height: 0 with overflow: hidden for the collapsed state. Content stays in DOM, crawlers can read it, and the expand/collapse animation still works.
Step 3: Fix ARIA attributes.
Replaced aria-hidden="true" with proper aria-expanded="false" on accordion triggers. Added role="button" and tabindex="0" for proper interactive element semantics.
Step 4: Add FAQPage JSON-LD structured data.
This is the part most people jump to first, but it's actually the last step. Schema markup doesn't help if the content isn't crawlable in the first place.
Once the content was in the HTML, I added FAQPage JSON-LD in the <head> - matching the on-page question and answer text exactly. Validated it with Google's Rich Results Test.
This is what unlocks FAQ rich results in SERPs - those expandable Q&A snippets that massively boost CTR.
I wrote this up for my dev team, sharing it here because I wish I'd had this a year ago:
display: none on collapsed state — Use max-height: 0 + overflow: hidden instead.aria-expanded="false" on trigger, role="button", tabindex="0". No aria-hidden="true" on FAQ containers.<head>, includes both name (question) and acceptedAnswer > text (answer), validated in Rich Results Test.If you have FAQ accordions on your site - especially on a headless/static-generated setup - go do a View Page Source right now and search for your FAQ answer text. If it's not in the raw HTML, Google isn't reading it, and no amount of schema markup will save you. Fix the HTML first, then add the structured data.
The accordion UI isn't the problem. How the content gets rendered is.