Claude Code Built This SEO REPORT in 2 HRS (COPY IT OR GET INSPIRED)
A fully functional SEO reporting tool is built from an empty folder to live deployment in under two hours using Claude Code and SE Ranking's MCP server.
The walkthrough covers connecting to real SEO data, building a landing page with email capture, and generating comprehensive reports including backlinks, domain analysis, keyword research, competitor landscape, and AI search visibility.
The final tool is deployed to Vercel as a lead magnet for SEO agencies, demonstrating how product managers and SEO specialists can now create client-ready tools without developer resources.
Imagine this. Someone find your website, typed in their domain, and 30 seconds later, they have a full SEO report. Back links, keyword gaps, competitors, AI, search visibility, the kind of audit that normally takes hours. And to get it, they gave you their email. That's the play. Free tool to build an audience. Classic SEO growth loop except that you build the whole thing in hours. This is SEO Intel, a working lead magnet for an SEO agency. prospect find it gets value and you get their contact and I just build it using claude code and SE Ranking's MCP server no developer needed. In this video I will walk you through how to build from an empty folder to a live deployment step by step and by the end you will be able to build something like this yourself and right before we get into the actual development there are three things you need. The setup takes about 10 minutes. First an SE Ranking account. If you don't have one, create one at seranking.com. All plans include API access. You just get more credit on higher tiers. Once you
are logged in, go to the API on the left sidebar, then dashboard. Hit create API key and copy it. You will need it in a minute. Second, Claude Code. Claud can run in a few places. Terminal, IDE, desktop, or browser. For this build, we are using the terminal version because that's where everything works fully. and you can see exactly what's happening. Third, the SE Ranking MCP server. This is what lets claude get access to SE Ranking's data directly with over 100 SEO tools through a single URL. Here is the setup from a scratch. I have put the setup guide in the description below. First, install claude code. You can run the install command from the guide. Next, navigate to your project folder and add SE Ranking MCP server. one comment. I will put it on the screen and that's in the guide. Then launch claude and run /mcp command and authenticate with your SE Ranking account. If everything worked, you will see SE Ranking server listed as connected with
over 100 SEO tools available. Total time about 10 minutes if you have done it before. By the way, if anything breaks along the way, check the troubleshooting section in the guide or reach out to us. Contact link in the description. Once it's connected, you don't write any code. You describe what you want in plain English and claude handles the rest. Okay, setup done. Now, what can we actually build? That's the first question. And the answer comes from asking the MCP itself. Okay, so what can we actually build? Uh, here is the thing about being a non-developer building on an API. You don't know what's possible, but you could read the documentation or you could just ask. Let's open code and we can ask list all available MCP tools for SE Ranking for uh data API group them by category. Okay, just to understand a little bit more uh what's available
and which kind of tool we are able to to build. Okay, uh it is required for us uh to authenticate. So we are going to be running MCP running authentication and authenticate. We have opened uh this f this this popup that we are going to sign in with our SE Ranking account. That's it. We can go back. Okay. So let's ask uh let's start again with listing the different available tools. Okay. We have tools about site audit in order to understand if our there are errors inside the website uh that could be negatively affecting our uh ranking. Uh tools about backlinks, tools about domain research, domain analysis I like to call it, keyword research, SER, AI overview. Okay,
there are 59 data API tools across six different categories. That's a good start. Now, let's let's explain to Claude what we are actually going to be building. We want to build a landing page in order to capture the email of a user and be able to deliver them a SEO report for a specific domain. So let's let's uh tell them that in order to start from a blank desktop I would say we can probably get a screenshot from this uh tool uh and we will uh paste it uh over here. Okay. So we have set the objective uh and we are going to be creating the the landing page. We have explained a little bit more about where we are going in order to give a little bit more context to to the tool. Let's
see what happens now. It has correctly identified that the folder is completely empty and it will be creating the landing page adapted for your lit magnet use case and it has correctly identified that in the previous design uh this creator which is SE Ranking. It was template application. It was asking the SE Ranking API key. But in this case we want to have an email field instead of an API key. I would uh using uh nextJS latest technologies. It has created uh one single design but we actually want to create a feature that is going to have a back end using the API. So let's uh actually
include the backlinks data so that uh it can start to understand more or less uh how we are going to be doing this and at the same time I'm going to explain to it uh the the way to authenticate right so we know that SE Ranking requires an API key so I am I just want it to be clear this is the the API kit once I wanted to to be using. Okay, this is the API. This way it gives a little bit more uh context to the tool on where where we are going because otherwise just an on HTML it's going to be quite hard uh in order to to get there. Right now it better understand the objective and it says okay I'm going to start this project building the landing page the API route for this ranking backlinks and a report page results. Uh let me start otherwise only with an HTML uh file it's uh a little bit uh quite um not flexible enough for for our purpose here. So working with claude codes
uh you need to keep redirecting it to the things that you want to use how you want it the outputs and so on. So in this case it's basically a conversation, right? It produces a result and you say, "Okay, but I like it this other way." So we we adapt a little bit. Okay, we got the result. Uh let me ask Okay, it's already running on local host 3000. So let's let's see. Okay, looks uh cool. The the the feeling is exactly almost the almost the same. So let's uh let's analyze it for example for wix.com and in this case the email that we are going to be using is the one from my email. Let's generate a report. Okay, we got the first tab and we got a piece of uh information.
Here we have the tool. It it is quite similar to our our initial tool though we need a button uh in order to uh to generate the report. Let me ask it. We are going to say okay this button what is going to be doing it's it's going to call the SE Ranking API for the backlinks. It's going to be generating different different tabs. The first tab of which is the backlinks report. Okay, let's explain a little bit more what we want back links for. On backlinks, we want to see domain authority Okay, let's see what uh what happens. Right now I am doing uh
two different things. Providing the documentation in order for it to make sure that it understands all the different endpoints and so on. But I say okay in order to get comfortable with the API, let's use the MCP. The good part of of the MCP is it can easily query and get information back. So understand how the parameters are created and understand the object of the response. It helps speed up the development process. This step might take a little bit because it's actually doing a lot of things. Uh right now it is doing a lot of different things. Interesting. Okay, let's see. Let's refresh the page. Uh, okay. Maybe. Okay. I don't see the button to actually trigger this one. Uh, let me give it a screenshot of how this whole process is going.
There are still no changes. Uh so I'm just prompting it to actually maybe that's strange. So looks like okay right now it's internal error. So it finally killed the the process correctly. Let's see if it right now it is up and running. It is up and running but the the button is still not uh not visible. Okay, looks like we are going to go with another route. Let's see if this delivers better results. Okay, looks like finally we got our our our button. Let's see if we got some results. Our objective is basically to try to uh define retrieve the data in order to make
sure that our objective is to correctly be able to display the date using the API from SE Ranking. Okay, this is uh really cool in order to able to see which week if we are growing or losing. For example, these weeks we are growing. Well, basically looks like uh in this case this domain is growing more back links than the ones that it's it's lost. We also have top anchor texts, top back links, top referring domains, top tldds and top countries. Amazing. We have a good piece of information about uh about the different uh different backlinks. Okay. Uh we started with backlinks uh basically because I have a little bit of feeling that this is how
everything started right. So Google uh originally uh started with the page rank algorithm. links are still the foundation of how search engine works. Uh every serious SEO audit starts starts here starts with backlinks. Okay. So I would say the backling section is done. But your clients who care about link building also want to know is our traffic growing uh which markets are winning uh which keywords we are ranking for. Uh so we are going to build that. Next we are going to ask claude to pull uh do the main traffic data uh in the new tab. What do we want to see here? I would suggest for me overview which means like also I would like to understand if we are improving, declining, new or lost. Right? Then something that I I like a lot I would say that I I got
from a from a competitor is the way to display the historical keyword growth. It's like from uh every month we are able to see a number of keywords on one axis that you are ranking for and on the other axis the number of traffic that you have in order to see if this is growing up into the right. So uh here I'm attaching an image. Something else that Oh yeah, we would like to see uh top ranking keywords and then maybe we can identify some keyword expansion opportunities. We are going to go here. We can go to the next section which is the main analysis. Right. We are
going to be copy pasting this whole section. We have one side here. Let me get the other part that we are interested in which is keyword research. We are just going to copy paste it as additional uh as additional um context for the LLM in order to understand what we are going to be achieving here. Oh, one thing that I think that we have overlooked is the traffic by country. Let me just write it here. And maybe we can also see identify top pages and maybe top page. Let's include another. Okay,
this is going to be a quite a complete report on domain analysis and keyword research. Okay, this is making progress right now. All the APIs have been validated. Now we are going to be checking the different endpoints for top pages and paid advertisement which was the latest things that we actually asked uh it to to perform. It's worth noting that sometimes uh the data that the endpoints retrieve right it's quite large like in this case for the get domain overview worldwide right it has more characters than the one it it makes sense for it to to ingest. So one smart thing to do is actually saving that to a different file and then it get okay let me actually identify how this file is structured right so you it it doesn't need to load all the different characters only a subset in order to just verify the structure of it okay we can generate a new a new report we have actually implemented quite a lot a lot of things you can see Here it's a
really good one. Okay, we have we have implemented the second tab as we said keywords and domain. We have we can see here the total keywords the num the different positions the ones that we have improved decline new and lost the fe the SER features that we have won all the different SER features that we have. Okay, this is in in percentage. So I would like to to actually uh say okay then from the historical growth. Oh this is a really really nice view. For example we have the blue line right which is the traffic in millions and then we have the stacked number of uh of different keywords that you have for each of the different uh positions right for position range. This is interesting. In this case, Wigs is growing a lot. The number of uh of uh keywords that it is ranking for position one to five. I would say everything started since May 2025. We are also
a able to identify the different markets. US is the number one. Second is the UK, India, France, Brazil. Okay, we are able to see it number of keywords, traffic and the positions, top ranking keywords, top pages, paid search advertisement, keyword expansion opportunities. This one is quite interesting. You can see that for example for similar and for related the different uh the different keywords that we could be interested in identifying and also longtail variations. Okay. Interesting. Uh let's see if we have actually refined this a little bit uh on this section. Uh okay. Okay. So this is where actually percentage uh in this case for example related searches we have 29 and we appear in 29 different ones which represent uh here we
have the the percentage in this case right okay I like how it is thinking about this because uh my my suggestion was also to go to the next uh next tab should be about about competitors Then we want to see I would say this is a really good starting point. It has correctly identified SE Ranking has two different endpoints uh regarding competitors. It has one to get get domain competitors which list a different uh the different set of competitors and then we have another one one of my favorite endpoints actually which is um get domain keywords comparisons. So you have two different domains and it is able to see the things that it has in common or the things that one one domain has that the other is lacking. For for for me this is a really good interesting
endpoint because it it is able to see what things they are ranking for your competitors that you are not. Okay. Right now it is actually outlining the different actions that it needs to do. Right. We are going to be adding a set of functions. We are going to be adding the reports, updating the reports uh and creating the tab component. This is really interesting. Okay. Looks like we have a new tab. Let's uh go back. Let's refresh it so that we can implement it. Let's review the the new report that we are generating. Okay, we have the section of the competitors. Here we have Wigs, Shopify, HubSpot, Hostinger, Godaddy and Mailchimp. Okay, this is uh our domain uh the domain authority traffic and keywords. And for each of the different competitors, we can see the traffic keywords and the common ones with us. You can see another representation of the keyword overlap,
top organic uh competitors, keyword gap opportunities. For example, for this keyword, the competitor position is 18 and we are not uh ranking for this specific keyword. Okay. Uh just as a little recap right now we are generating a SEO report about backlinks keyword domain keywords and domain analysis and finally also competitors. With that I would say that the classic SEO report is quite complete. Next step would be about what everybody is recently talking about AI search right let's bring a little bit of clarity into the AI search. Then I would say first we start with the leaderboard but also I want let's see I
see that there is one of the end points that we have that it's about brand I just want to say Um, basically it's because the system is going to calculate it. Let's share over here as well the the documentation. So just for the LM to have a little bit more context, it has already used the MCP in order to understand all of it. Okay, I would say that it was already uh created the new search, the new AI search. Let me see what it uh discovers based on the different context that we have just added. Okay, looks like we have it. Let's verify the new tab. This is going to take a while probably because every time we are adding more and more endpoints. So the maybe it takes
some additional time in order to generate the response. As we can see over here we have the new tab AI search. So all the all the previous tabs continue to work successfully. Uh right and finally the AI search. Here we are our domain compared with the different competitors. Here we can see the performance by by engine. I would like to see which is the the market it has been set because it's quite strange that this particular domain it is not uh receiving uh receiving data. Let me go over again. It's a little bit difficult to read the all the different citations uh by only having this this big one over here. We are going to fix that as well. Different ways to to show it. And over here we can see that uh Shopify is not being uh don't have any
any visualization for AI overview. I would say that's probably uh an error on the on the LLM. Okay. Sometimes it's it's like a back and forth. It's about okay, I identify something, I explain it. Uh and uh I suggest always using the MCP. It's the most straightforward way to actually validate if the data that we have just acquired makes sense or not. Right? Looks like we have implemented the fix. Interesting to see how it it will be reflected on the data. Right now we have managed to resolve it. We have more more data visualization around here. Okay. Nice. Uh I would say we have the all the different sections of the report. Backlinks, keyword domain, competitors and AI search. Four sections that a good SEO domain good SEO report right now should
be working on. Right? uh I would say this is a good uh good return of investment for the person in order to be able to add their own email here in order for them to evaluate if we are a good uh SEO agency or not. In this case uh we are missing one thing it everything is running locally right but we would like this to be on the public web in order to be able to list it uh in order for people to be able to use this service. So right now the last thing me pending it's about okay so we are telling burcell is a provider that can host our codes and is going to be able to host this on the web. It is a a way to actually get an MVP hosted in the web. Quite quite uh interesting.
We are cheating a little bit because we had already burell installed uh to be honest and I have I had already been uh authenticated. it proposed different solutions in order to host it because bersel has some limitations right and I would say I have replied okay let's go for the simpler approach uh we only want to validate that this solution works end to end and actually we are trying to go in under 90 minutes I would say that it is going to take us in order from an idea with an empty folder uh to a solution uh in production so let's see if we manage to get there. Okay, it did a little bit of changes in local. Let me see if everything goes well uh locally. Uh and then we can just validate on Brazil. Actually, it is quite uh quite exciting. Uh I would say uh let's see how
everything goes. Okay, things continue to work as expected in uh in local. Okay, it's important to see. Let's see what happens in uh in production. It has continued to add the environment bar. Okay, that's good for our API key. Okay, we got a new uh a new link. Let's see what happens. Fingers crossed. Okay, well it's loading. Uh let's see what happens. Uh we are adding our email. Let's see if the report generates. In case that it fails, no problem. We are going to be reviewing the locks. We are going to ask a claude in order to to be able to to fix it. Okay. So, as we said, this is production. Everything continues to to work and we are delivering value to our new prospect. Uh it's basically a way to for us to build uh to build authority just for anyone to not
think that I was basically faking it. Uh we can use different domains. Okay. And it will continue to work. We are using active uh data from the SE Ranking API with just uh fresh data. Let's see uh if everything goes well as well with our other uh domain. Yeah, everything every domain has its own different uh historical uh growth and so on. So it is just for us to see that we are actually uh calculating all these metrics uh life and and so on. Okay, interesting to see that for SE Ranking uh we have uh not identified uh for the AI search any data. I would say this is a good candidate for keep uh debugging it. I would say the next steps uh would be continue to define uh all these
uh different edge cases, all these different uh uh things. Let's see. I would suggest just by reading at the way that it is actually resolving the problem. Could we increase uh the the waiting time? Well, let's see. Let's not jump uh too fast, right? And let's just see what is uh what is happening. Let's see if in local host for SE Ranking we are actually we are actually um retrieving all the different data based on the new fixes that we are doing. Okay. Okay. Yeah. Right now we are able to to get the data which is good. Then we want to ver verify the same in production for in in vercel. Let's verify if this is actually the case. This is the previous report.
We need to come here and start again. Okay, it loaded quite fast I would say. And right now we are able to see all the different data for all the different domains which is uh a success. I would say that's it. Uh our audience cares about uh having SEO data. We are able to to deliver it. There is a lot of things that we can continue to do. Uh based on the timer that I have set up, this is one hour and 19 minutes since we started working on it from an empty fab folder. Okay, I would say we can continue doing personalization, right? We can do a little bit of branding on this solution in order to refine it and be able to explain a little bit more about our agency and the different services that we provide. And at the same time that we continue to refine the different endpoints that SE Ranking offers in order to empower empower uh these solutions. Also a good practice is is always storing the code in a in a code base right
for example we could be putting this code in in GitHub in order to make sure that we don't lose everything anything in case that something happens. And yeah, I would say we delivered uh quite a good result in uh the time that we had. Here is what just happened. We took an empty folder, connected to SE Ranking data through the MCP server, and built a production lead magnet for an SEO agency. No developer on the team about an hour and a half live. If you understand SEO, you already know what your prospects need to see. You know the backlink matters. You know which keywords metrics drive action. You know that competitive gaps close deals. The only thing that changed is now you can build a tool that delivers it. For kids, brand it, deploy it. Your next client finds you through the tool you built. Links are in the description. The GitHub repo, the setup guide, and all the full workshop recording where we build parts of this live. Go build yours.
Key takeaways
Chapters
Quotes
“Imagine this. Someone finds your website, typed in their domain, and 30 seconds later, they have a full SEO report. Backlinks, keyword gaps, competitors, AI search visibility, the kind of audit that normally takes hours. And to get it, they gave you their email. That's the play.” — Guifré
“You don't write any code. You describe what you want in plain English and Claude handles the rest.” — Guifré
“Every serious SEO audit starts here—starts with backlinks. Links are still the foundation of how search engines work.” — Guifré
“The only thing that changed is now you can build a tool that delivers it. For clients, brand it, deploy it. Your next client finds you through the tool you built.” — Guifré