SEO fix
Hi everyone
I’m the author of The SEO Framework and I got a link back here to enjoy this discussion.
Before I want to sound picky and boasting: Both The SEO Framework and Add Meta Tags are awesome plugins, really! They’re just different, in some aspects. At the end of the day it’s up to you what to use.
I do not wish to choose sides, but it’s hard not to do so when you’re protecting your own baby!
Add Meta Tags adds, as the name aptly suggests, meta tags! These meta tags are used only for SEO, robots read them, not humans. Thus making it an SEO plugin. With that out of the way, I want to continue on many (hidden) questions left unanswered within this post.
I just took a big look into how Add Meta Tags interacts with my test website, on many aspects, with many configurations. You can see this as a competent answer and an expert opinion on which I took about one and a half hour to compose.
The differences between Add Meta Tags and The SEO Framework:
The SEO Framework adds all mentioned meta tags, just like Add Meta Tags, including very advanced extra ones, and automatically as well (except for image dimensions, which is redundant). The SEO Framework does however allow you to be more in control of the output of these meta tags, without outdated and ignored input.
It also includes extra features as showing you where you can improve your SEO, which can all be disabled through filters :).
Add Meta Tags is a much more seasoned plugin (because it’s about 16 times older than The SEO Framework) and therefore includes a few other useful things aimed at popular plugins like BuddyPress for example. I have only took a small glimpse at the code, but I can tell it looks difficult to maintain or extend.
Most importantly, The SEO Framework focuses on how Google and Bing interact with each page of your website, and optimizes it automatically with the default settings, and even more so with advanced settings. A few examples are preventing duplicated content and adding breadcrumb, pagination and up to date linking of Business profiles.
This is something Add Meta Tags does not do. Add Meta Tags does add more information for robots to interact with, which is important, but not to the scale of how The SEO Framework optimizes your website.
Then again, it’s ultimately up to you what to use.
The Facebook Standard
The reason Add Meta Tags is hard to read and maintain is because it’s written in the time before Facebook. It’s initially written for PHP4, and back in that time PHP wasn’t popular enough. With the rise of Facebook (which is written in PHP) and WordPress, PHP became much more popular and standards have been created. The SEO Framework follows these standards, and is therefore not only easier to read, but also much more efficient, faster, and in the long run more extensible. Add Meta Tags needs a big overhaul to adhere to the new standards.
Both plugins aim at different audiences.
For instance, The SEO Framework, just like Yoast and All In One SEO Pack, aims at the general public.
The SEO Framework is mainly written for people who know nothing about SEO, and therefor is endeavored to be very user friendly. Its first name was AutoDescription, until it quickly transformed into a Framework.
The SEO Framework also aims at plugin authors for it has many extensible functions, it has Framework in there for a reason :). I have also created a dummy plugin to show you how to extend The SEO Framework with automated metadata, including adding option sections to alter it, all in about 80 lines of code (about the same as the WordPress Settings API). Which I tend to reduce in the future, but it’s already so little!
Both Add Meta Tags and The SEO Framework have an “activate and forget” attitude built in, which is great for new WordPress users.
On Tarrence’s comment:
Im using SEO framework but it doesn’t really generate description. it ads the question to the description… which is already the meta title
I’m aware of this and it’s being worked on for the next update. The title is always added for a more organic experience and to evade “automation detection” by Google, which can result in a penalty if done incorrectly. Read all about this here (warning: wall of text): https://wordpress.org/support/topic/local-meta-data-override-and-possible-title-confusion?replies=2
On Dima’s comment:
Like I said, my root QA page doesn’t have description because I haven’t set one. Think about it. A page with only content “[anspress]” and a title “Вопросы”. Nothing else is set. How any plugin, or wordpress without plugins, would know what to write in description there?
This is absolutely correct. Besides, there’s nothing to fetch a description from on the main AnsPress pages, as it’s merely a list of questions. Just like with bbPress forum pages, the description should be manually filled in to your liking.
The core reason for these issues:
The main problem with communicating with AnsPress is that it uses Question ID’s rather than Post ID’s. This requires some extra implementation, which is done on many aspects, although I see I need to add a few more to completely support AnsPress.
Is AnsPress doing it wrong? Absolutely not!
I’m currently almost finished with building a plugin like AnsPress for a company (but then for automation of car dealing invoices) and it’s the only way to go for complete manipulation or an overhaul of the Front-End.
This does, once again, mean it’s more difficult for external plugins to interact.
Whatever the core reason is, it’s being worked on, and more.
Keep in mind that The SEO Framework only has its footprint since May 2015, where many other SEO/metadata plugins have aged well already. I’m absolutely trying my best to not only keep up, but to exceed as well in many aspects.
A new function and filter is on its way to fetch post ID’s in an absolute way, this means new plugins written like AnsPress and bbPress will automatically, or with 2-4 extra lines of code, be supported.
It’s funny that The SEO Framework has about the same amount of code as Add Meta Tags has, then again, I have put about 1200 hours into this plugin thanks to coffee and pizza. Yes, this is about 5 hours a day on average.
Now what’s better, The SEO Framework or Add Meta Tags?
As you might have guessed already, my opinion highly favors The SEO Framework. The reason for this is not because Add Meta Tags isn’t good, in fact, Add Meta Tags is awesome and a great service and addition to the WordPress community!
It’s just not my plugin :), literally. There are many more reason on which I will not go into detail. It falls short on some things, but it also exceeds in others where The SEO Framework falls short.
All with all, I believe The SEO Framework does a very good job in combining best of both worlds and then some.
All comments, negative or positive, for The SEO Framework are truly welcome. It helps me build a better plugin for you :).
I hope this information helps! Keep an eye out for a future update.
P.S. Thank you very much Rahul for your recommendation :), it’s really appreciated!
Thanks Rahul 🙂
Let me know if you find any issues! I have yet to receive co-WordPress-developer’s comments so your testing results are truly a great asset.
Thanks for your answer, Sybre!
I want to intervene a bit:
“These meta tags are used only for SEO, robots read them, not humans. Thus making it an SEO plugin. With that out of the way”
Main reason why I wanted AMT was not for SEO. I share my posts/questions to social networks. And social networks robots (yep, you are right) read OG and TWITTER meta tags. Which, if set right, will result in beautiful post in social networks: http://4.stefantsov.com/s/?2015.12.20_10.48.49_8y9s8yse.png
If it has no such meta tags, it will be naked link, will not attract PEOPLE attention.
So my main reason for desiring a plugin that adds metas – is to beautifully present content to people in social channels.
“I have only took a small glimpse at the code, but I can tell it looks difficult to maintain or extend.”
It’s a simple procedural code for outputing a few lines. It’s not as beautiful as it could be, but it’s no way “difficult”.
By today, the only “diffucult” plugin for wordpress I have encountered is SMTP Postman (oh, and Easy Affiliate Links). They are, on contrary, built with object-oriented paradigm, which needlessly makes it many times more complex. None of functional addons I have seen were “difficult”.
“The SEO Framework follows these standards, and is therefore not only easier to read, but also much more efficient, faster”
I had to test those assumptions. For SEO Framework I have disabled generating sitemaps and notifying search engines (to make it more fair compared to AMT which doesn’t do this). Here is what I got. http://4.stefantsov.com/s/?2015.12.20_11.53.37_ufnzq2mx.png
Tell me how do I perform a test to make your words true?
What is it with you Dutchmen and SEO? Well, right about there the similarity ends, because your methods and your motivations are VERY different than the other guy’s. Anyway, thank you for the detailed and thoughtful comment. Personally, I am very impressed with SEO Framework, and with you too Sybre. I love your enthusiasm and humor. And don’t take any notice of Dima. He can’t help it. He’s Russian. 😉
Hi Guys 🙂 Thanks for following up!
On Dima’s first comment:
That’s correct Dima! Social Optimization is nowadays a huge part for SEO, without it, social networks deem to guess what to use from what’s available. Rich snippets, used in the best themes, are of great value. Add Meta Tags and The SEO Framework alike also help you make those shareable links beautiful, more interactive and just how you like them to be :).
This means your artistic ways of presenting things online will automatically expand when someone shares it through Facebook, Twitter and many other (social) sites which use these tags.
On Dima’s second and third comment, be aware, technical response:
I’ve taken a look at SMTP Postman’s code, and it is indeed, needlessly complex. This is because it’s not following the current “optimization” standards, but it’s using every piece of code in the book. Yoast SEO uses abstract classes and interfaces, which also needlessly adds memory consumption and loading time, just like SMTP Postman, although readable, it’s needlessly complex. Other factors make Easy Affiliate Links more complex, mostly because the use of code comments is quite poor, but also new files are needlessly added and spread out, leaving it open to vulnerabilities as well.
Function based programming is easier to “get started with”, when you’re new to programming and it’s being discussed on WordPress Trac, whether or not to abandon functions for a more efficient object oriented style.
A great example of this achievement is, where the Post object is added: https://core.trac.wordpress.org/ticket/21309
The beauty of classes is also much easier from an external approach, for instance, you can cache the whole plugin in a single statically cached function, like I have within `the_seo_framework()` function. This way, no actions are run twice, and you can extend it or use functions within without affecting performance.
Many functions I have made are also cached. For instance, The SEO Bar almost loads everything that would be output in the front end. But you won’t notice a performance hit when you visit the overview your posts.
Another great read of my programming approach can be found here, be aware that it’s very difficult to understand: http://techpubs.sgi.com/library/dynaweb_docs/0640/SGI_Developer/books/OrOn2_PfTune/sgi_html/ch06.html
In all respects, my code runs best on PHP5.6 and later, and of course on Haswell processors or later. Even more so, when using Opcode caching, you’re not even going to notice my huge plugin is activated.
So some things might be a tad slower than other plugins on older machines, but we’re all moving forward! Right?
On Dima’s third comment:
You can test this by using my Gentime plugin, or if you wish to be more advanced, using P3 Plugin Performance Profiler (doesn’t support Opcode caching) like you have. If you wish to go to the core, you should be using New Relic APM, be aware that the latter is very intrusive on your server and difficult to set up, and even more difficult to remove!
Just follow some pages, archives, front page, edit screens, 404, etc. and take notes of the timings.
In my tests, The SEO Framework runs a little better compared to All Meta Tags when using OpCode caching, and a little worse when not.
Sitemap and pinging generation doesn’t affect performance, as the first one only loads on example.com/sitemap.xml and the latter runs only when updating a post and at most by default once an hour.
I’m unsure where the 0.45s load time is added, but I sure would like to know! My guess is that it’s the post page visited for the first time, where all descriptions of 20+ posts are rendered at the same and for the first time. It could also be an image resize for it to fit within the og:image standards. A second test should remove that spike.
Please be aware that The SEO Framework also generates Titles, Breadcrumbs scripts, canonical links, shortlinks, and many more items just to be perfect, this adds a big difference in load time. A mistake in these could be fatal for your website’s ranking. This is something All Meta Tags doesn’t do and making this actually an unfair comparison, as said earlier: Both plugins are written for different audiences, where AMT focuses on Social Networks, and The SEO Framework focuses on both Social Networks and Search Engines.
You could disable these of course, but it will take a few hours to go through all settings and filters to make both plugins do exactly the same for testing.
Here’s a code block of filters to make The SEO Framework more like All Meta Tags:
`add_filter( ‘the_seo_framework_manipulate_title’, ‘__return_false’ );
add_filter( ‘the_seo_framework_output_canonical’, ‘__return_false’ );
add_filter( ‘the_seo_framework_json_breadcrumb_output’, ‘__return_false’ );
add_filter( ‘the_seo_framework_json_search_output’, ‘__return_false’ );
add_filter( ‘the_seo_framework_use_object_cache’, ‘__return_false’ );
add_filter( ‘the_seo_framework_json_options’, ‘__return_empty_array’ );`
The results are best compared on old themes (e.g. Twenty Twelve), since it will then skip the title all together with these filters.
A quick note however, I’ve added Add Meta Tags to the OG plugin detection list of my plugin, this will disable meta tag of The SEO Framework on the next update when All Meta Tags is active.
On Terence’s comment:
Thanks for the compliments! 🙂
Well, I think Dima’s very open minded and takes matters at hand seriously, that might be a Russian thing, but I believe it’s awesome and helpful as well 🙂
Really like the plugin although can I get the plugin to output the Question Description instead of the title as the META Description. You can see an example here: http://nursingnotes.co.uk/routes-into-nursing/
Hi @Matt Bodell,
You can’t do that with the current plugin you’re using.
However, The SEO Framework does support this, when you go to your WordPress dashboard and follow the AnsPress menu on the left side.
From there you can see the submenu “All Questions”, follow that link and you can edit the Question the WordPress way, underneath the question you can edit the SEO settings, including the description.
I hope this helps!
@Sybre thanks for the reply.
I’m a seasoned developer myself, about 10 years of C/C++, C#, ASP.NET. I’m new to PHP. I know about OOP, and I have heard “Function based programming is easier to “get started with”, when you’re new to programming” etc. “oop better whan project is complex, it can scale, it can be unit tested, …, … ”
Currently I’m in doubt with that. WordPress, functional in it’s core, runs 25% of whole world. It’s simple. I’m in love with simplicity of filters and actions. You just do it and it instantly works, no need to inherit, override, instantiate…
If 25% of world is not big enough, then I’m fine with being on the side of this “small scale” 🙂
(OOP has it’s uses, even WordPress uses it, WP_Query is one I have encountered, but that’s not a silver bullet)
Applied filters you suggested. Like you have predicted, running two tests in a row would smooth a spike in SEO Framework performance: http://4.stefantsov.com/s/?2015.12.24_19.01.58_raascyil.png
I can not test it with opcache enabled, can confirm the latter half of your info: “The SEO Framework runs a little better compared to All Meta Tags when using OpCode caching, and a little worse when not.”
That just sounds not as proud as your initial “The SEO Framework follows these standards, and is therefore .. much more efficient, faster”.
“this will disable meta tag of The SEO Framework on the next update when All Meta Tags is active”
Do know that AMT generating OG is optional. This option can even be changed at runtime with filters. Therefore your users may not always want to have your OG generation disabled. They may prefer your OG over AMT.
Rahul, do u recommend to use SEO Framework plugin or anything else?
Yes, I do. Author is responsive and they have added some conditions for AnsPress in their plugin.
I am using Add Meta Tags plugin to achieve that.
http://stefantsov.com/add-post-meta-to-anspress-with-add-meta-tags-plugin/
It doesn’t work ~ http://screencast.com/t/qk0h4vkwsDxk
It does work.
What you see is because I have not set any description for the root page. That, mind you, is working even without any addon, just default wordpress. Your image is irrelevant.
What this topic is about, and what both AMT and SeoFramework(supposedly, haven’t tested it) can do – is generate descriptions and other meta tags for QUESTIONS.
It reads “descriptions for all questions”.
Go check description of a QUESTION.
I don’t use it, so I guess I don’ know what “Add Meta Tags” is supposed to do, or not do. I just thought that might help you.
No problem.
It can automatically add a lot of different meta to any page or post.
Authorship, descriptions, twitter cards, open graph, even schema org (this one doesn’t work well with anspress because anspress already have schema org hardcoded).
Check out the screenshot of all available options, it’s huge! http://4.stefantsov.com/s/?2015.12.18_17.40.14_6naqvpos.png
Also, if you are into that kind of stuff, it has filters and actions to easily modify it’s behaviour with code as well, plus it’s develoer is active and responsive in case you could need anything even more advanced!
Here is what gets generated for question with settings I use: http://4.stefantsov.com/s/?2015.12.18_17.44.25_afllg9u6.png
If, as you say, Description is working without an SEO plugin, does that mean “Add Meta Tag” breaks it?
Im using SEO framework but it doesn’t really generate description. it ads the question to the description… which is already the meta title
“If, as you say, Description is working without an SEO plugin, does that mean “Add Meta Tag” breaks it?”
No. Why do you keep badmouthing this excellent plugin?
Like I said, my root QA page doesn’t have description because I haven’t set one. Think about it. A page with only content “[anspress]” and a title “Вопросы”. Nothing else is set. How any plugin, or wordpress without plugins, would know what to write in description there?
I have set it now, you can check and see for yourself that AMT doesn’t break anything: http://dima.stefantsov.com/qa/
@Tarrence ~ yes that is odd, because its not what leads you to believe its going to do. I reported it to the author of SEO Frameworks and this is what he said…
“Thanks for reporting this bug!
It’s caused by The SEO Framework, but having a quick look through the code once more, I can’t find the reason for this to happen. I believe I also encountered it on my test site before but I ignored it at the time as there were other priorities.
However, I will look into it further ASAP, but for now I can’t say which line exactly is causing this, as both descriptions fairly run through the same process of generating one.
I’ll keep you posted, until then: Not to worry :). Descriptions are allowed to be changed over time without penalty. And after all, it’s the content that matters.”
Which is one more reason to use AMT which works RIGHT NOW 🙂
Use the instruction given in the answer link.
That’s because you’re not using SEO Framework which the author has specially tailored to work with AskBug/AnsPress.
Thanks for detailed description. I am testing ANsPress + SEO Framework and I suggest AnsPress users to choose SEO Framework over WP Seo (formally yoast seo).