
Recherche avancée
Médias (91)
-
Valkaama DVD Cover Outside
4 octobre 2011, par kent1
Mis à jour : Octobre 2011
Langue : English
Type : Image
Tags : photoshop, psd, creative commons, opensource, open film making, Valkaama
-
Valkaama DVD Label
4 octobre 2011, par kent1
Mis à jour : Février 2013
Langue : English
Type : Image
Tags : image, psd, creative commons, doc2img, opensource, open film making, Valkaama
-
Valkaama DVD Cover Inside
4 octobre 2011, par kent1
Mis à jour : Octobre 2011
Langue : English
Type : Image
Tags : photoshop, psd, creative commons, opensource, open film making, Valkaama
-
1,000,000
27 septembre 2011, par kent1
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Demon Seed
26 septembre 2011, par kent1
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
The Four of Us are Dying
26 septembre 2011, par kent1
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (60)
-
List of compatible distributions
26 avril 2011, par kent1The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...) -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...) -
HTML5 audio and video support
13 avril 2011, par kent1MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...)
Sur d’autres sites (11510)
-
Matomo analytics for wordpress
15 octobre 2019, par Matomo Core Team — CommunitySelf-hosting web analytics got a whole lot easier ! Introducing Matomo for WordPress
Be the first to try it out ! Your feedback is much needed and appreciated
Get a fully functioning Matomo (which is comparable to Google Analytics) in seconds ! How ? With the new Matomo Analytics for WordPress plugin.
Web analytics in WordPress has never been easier to get, or more powerful. Matomo Analytics for WordPress is the one-stop problem solver. It’ll save you time, money and give you the insights to help your website or business succeed.
Best of all, we get to further the goal of decentralising the internet. Our hope is for Matomo Analytics for WordPress to spread far and wide. We’re so excited that more and more people can now get their hands on this powerful, free, open-source analytics platform, in a few clicks !
Download now and check it out !
What do you get ?
- No more signing up to third party analytics service (like Google)
- No more sending away your valuable data to a third party service (like Google)
- Easy setup – install with a few clicks, no tracking code installation or developer knowledge needed
- 100% accurate data – no data sampling and no data limits
- Full data ownership – all data is stored on your servers and no one else can see your data
- Privacy protection / GDPR compliance
- Ecommerce tracking out-of-the-box (Woocommerce, Easy Digital Downloads, and MemberPress) and we’re keen to add many more over time
- Powerful features – segmenting, comparing reports, different visualisations, real-time reports, visit logs and visitor profiles, Matomo Tag Manager, dashboards, data export, APIs, and many more
- Compared to other WordPress solutions we don’t charge you extra for basic features that should work out-of-the-box
- Just like Matomo On-Premise, Matomo Analytics for WordPress is free
We need your feedback !
We all know and love the versatility of WordPress – with over 55,000 plugins and all the different ways of hosting it. However, with this great versatility comes the potential for things to be missed, so we’re keen to hear your feedback.
- Is our plugin breaking anything on your WordPress, or, not compatible with something ? Please create an issue on our repository.
- Is something not working ? If so, what ? Please create an issue on our repository.
- How does running Matomo impact the performance of your WordPress server ? Also, if you have any other feedback for us – whether good or bad – please email us at wordpress@matomo.org. We’d love to hear what you think !
- Can you perform a security review of the plugin ? Security issues are best reported to security@matomo.org
- Do you have any questions ? Questions are best asked in our forum
Thank you ! We really appreciate your help on this ❤️
How do you get Matomo Analytics for WordPress ?
You can then upload it in your WordPress by going to “Plugins => Add New”. During the upload, if you get an error like “Are you sure you want to do this ?”, we recommend you upload the extracted zip file on to your server and into your ‘wp-content/plugins’ folder manually using ftp or ssh. Make sure the plugin name is ‘matomo’.
All you need is at least WordPress 4.8 and PHP 7.0 or later. MySQL 5.1+ is recommended.
The source code is available at : https://github.com/matomo-org/wp-matomo/.
In perfect harmony : Matomo and WordPress
The idea for this started two years ago when we realised the similarities between the Matomo and WordPress project.
Not only from a technological point of view – where both are based on PHP and MySQL and can be extended using plugins – but also from a philosophical, license and values point of view. We both believe in privacy, security, data ownership, openness, transparency, having things working out-of-the-box, simplicity etc.
WordPress is currently used on approximately 30% of all websites. Many of them use the self-hosted open-source WordPress version. Giving everyone in this market the opportunity to easily get a powerful web analytics platform for free, means a lot to us. We believe WordPress users get a real choice besides the standard solution of Google Analytics, and it furthers our effort and goal of decentralising the internet.
We’re hoping more people will be empowered to protect user privacy, have access to a great free and open-source tool, and keep control of data in their own hands.
We hope you feel the same. Help us spread the word to your friends and get them in on this awesome new project !
Share on facebookShare on twitterShare on linkedinFAQs
Isn’t there already a WP-Matomo plugin for WordPress available ?
Yes, the existing WP-Matomo (WP-Piwik) plugin is an awesome plugin to connect your existing Matomo On-Premise or Matomo Cloud account with WordPress. The difference is that this new plugin installs Matomo Analytics fully in your WordPress. So you get the convenience of having a powerful analytics platform within your WordPress.
We highly recommend you install this new plugin if you use WordPress and are not running Matomo yet.
If you are already using Matomo on our Cloud or On-Premise, we’d still highly recommend you use WP-Matomo (WP-Piwik). So that you get an easier way of inserting the tracking code into your WordPress site and get insights faster.
I have a high traffic website, will it be an issue ?
If you have a lot of traffic, we’d advise you to install Matomo On-Premise separately. There’s no specific traffic threshold we can give you on when it’s better to use Matomo On-Premise. It really depends on your server.
We reckon if you have more than 500,000 page views a month, you may want to think about using Matomo On-Premise with WP-Matomo instead, but this is just an estimate. In general, if the load on your server is already quite high, then it might be better to install Matomo on a separate server. See also recommended server sizing for running Matomo.
How do I report a bug or request a new feature in Matomo for WordPress ?
Please create an issue, on our repository whenever you find a bug or if you have any suggestion or ideas of improvement. We want to build an outstanding analytics experience for WordPress !
Have another question you’re dying to ask ? The Matomo for WordPress FAQ page might have the answer you need.
Matomo Analytics for WordPress newsletter
Get ahead of the crowd – signup to our exclusive Matomo for WordPress newsletter to get the latest updates on this exciting new project.
<script type="text/javascript"><br />
(function(global) {<br />
function serialize(form){if(!form||form.nodeName!=="FORM"){return }var i,j,q=[];for(i=form.elements.length-1;i>=0;i=i-1){if(form.elements[i].name===""){continue}switch(form.elements[i].nodeName){case"INPUT":switch(form.elements[i].type){case"text":case"hidden":case"password":case"button":case"reset":case"submit":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"checkbox":case"radio":if(form.elements[i].checked){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value))}break;case"file":break}break;case"TEXTAREA":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"SELECT":switch(form.elements[i].type){case"select-one":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"select-multiple":for(j=form.elements[i].options.length-1;j>=0;j=j-1){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case"BUTTON":switch(form.elements[i].type){case"reset":case"submit":case"button":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break}break}}return q.join("&")};<br />
<br />
<br />
function extend(destination, source) {<br />
for (var prop in source) {<br />
destination[prop] = source[prop];<br />
}<br />
}<br />
<br />
if (!Mimi) var Mimi = {};<br />
if (!Mimi.Signups) Mimi.Signups = {};<br />
<br />
Mimi.Signups.EmbedValidation = function() {<br />
this.initialize();<br />
<br />
var _this = this;<br />
if (document.addEventListener) {<br />
this.form.addEventListener('submit', function(e){<br />
_this.onFormSubmit(e);<br />
});<br />
} else {<br />
this.form.attachEvent('onsubmit', function(e){<br />
_this.onFormSubmit(e);<br />
});<br />
}<br />
};<br />
<br />
extend(Mimi.Signups.EmbedValidation.prototype, {<br />
initialize: function() {<br />
this.form = document.getElementById('ema_signup_form');<br />
this.submit = document.getElementById('webform_submit_button');<br />
this.callbackName = 'jsonp_callback_' + Math.round(100000 * Math.random());<br />
this.validEmail = /.+@.+\..+/<br />
},<br />
<br />
onFormSubmit: function(e) {<br />
e.preventDefault();<br />
<br />
this.validate();<br />
if (this.isValid) {<br />
this.submitForm();<br />
} else {<br />
this.revalidateOnChange();<br />
}<br />
},<br />
<br />
validate: function() {<br />
this.isValid = true;<br />
this.emailValidation();<br />
this.fieldAndListValidation();<br />
this.updateFormAfterValidation();<br />
},<br />
<br />
emailValidation: function() {<br />
var email = document.getElementById('signup_email');<br />
<br />
if (this.validEmail.test(email.value)) {<br />
this.removeTextFieldError(email);<br />
} else {<br />
this.textFieldError(email);<br />
this.isValid = false;<br />
}<br />
},<br />
<br />
fieldAndListValidation: function() {<br />
var fields = this.form.querySelectorAll('.mimi_field.required');<br />
<br />
for (var i = 0; i < fields.length; ++i) {<br />
var field = fields[i],<br />
type = this.fieldType(field);<br />
if (type === 'checkboxes' || type === 'radio_buttons' || type === 'age_check') {<br />
this.checkboxAndRadioValidation(field);<br />
} else {<br />
this.textAndDropdownValidation(field, type);<br />
}<br />
}<br />
},<br />
<br />
fieldType: function(field) {<br />
var type = field.querySelectorAll('.field_type');<br />
<br />
if (type.length) {<br />
return type[0].getAttribute('data-field-type');<br />
} else if (field.className.indexOf('checkgroup') >= 0) {<br />
return 'checkboxes';<br />
} else {<br />
return 'text_field';<br />
}<br />
},<br />
<br />
checkboxAndRadioValidation: function(field) {<br />
var inputs = field.getElementsByTagName('input'),<br />
selected = false;<br />
<br />
for (var i = 0; i < inputs.length; ++i) {<br />
var input = inputs[i];<br />
if((input.type === 'checkbox' || input.type === 'radio') && input.checked) {<br />
selected = true;<br />
}<br />
}<br />
<br />
if (selected) {<br />
field.className = field.className.replace(/ invalid/g, '');<br />
} else {<br />
if (field.className.indexOf('invalid') === -1) {<br />
field.className += ' invalid';<br />
}<br />
<br />
this.isValid = false;<br />
}<br />
},<br />
<br />
textAndDropdownValidation: function(field, type) {<br />
var inputs = field.getElementsByTagName('input');<br />
<br />
for (var i = 0; i < inputs.length; ++i) {<br />
var input = inputs[i];<br />
if (input.name.indexOf('signup') >= 0) {<br />
if (type === 'text_field') {<br />
this.textValidation(input);<br />
} else {<br />
this.dropdownValidation(field, input);<br />
}<br />
}<br />
}<br />
this.htmlEmbedDropdownValidation(field);<br />
},<br />
<br />
textValidation: function(input) {<br />
if (input.id === 'signup_email') return;<br />
<br />
if (input.value) {<br />
this.removeTextFieldError(input);<br />
} else {<br />
this.textFieldError(input);<br />
this.isValid = false;<br />
}<br />
},<br />
<br />
dropdownValidation: function(field, input) {<br />
if (input.value) {<br />
field.className = field.className.replace(/ invalid/g, '');<br />
} else {<br />
if (field.className.indexOf('invalid') === -1) field.className += ' invalid';<br />
this.onSelectCallback(input);<br />
this.isValid = false;<br />
}<br />
},<br />
<br />
htmlEmbedDropdownValidation: function(field) {<br />
var dropdowns = field.querySelectorAll('.mimi_html_dropdown');<br />
var _this = this;<br />
<br />
for (var i = 0; i < dropdowns.length; ++i) {<br />
var dropdown = dropdowns[i];<br />
<br />
if (dropdown.value) {<br />
field.className = field.className.replace(/ invalid/g, '');<br />
} else {<br />
if (field.className.indexOf('invalid') === -1) field.className += ' invalid';<br />
this.isValid = false;<br />
dropdown.onchange = (function(){ _this.validate(); });<br />
}<br />
}<br />
},<br />
<br />
textFieldError: function(input) {<br />
input.className = 'required invalid';<br />
input.placeholder = input.getAttribute('data-required-field');<br />
},<br />
<br />
removeTextFieldError: function(input) {<br />
input.className = 'required';<br />
input.placeholder = '';<br />
},<br />
<br />
onSelectCallback: function(input) {<br />
if (typeof Widget === 'undefined' || !Widget.BasicDropdown) return;<br />
<br />
var dropdownEl = input.parentNode,<br />
instances = Widget.BasicDropdown.instances,<br />
_this = this;<br />
<br />
for (var i = 0; i < instances.length; ++i) {<br />
var instance = instances[i];<br />
if (instance.wrapperEl === dropdownEl) {<br />
instance.onSelect = function(){ _this.validate() };<br />
}<br />
}<br />
},<br />
<br />
updateFormAfterValidation: function() {<br />
this.form.className = this.setFormClassName();<br />
this.submit.value = this.submitButtonText();<br />
this.submit.disabled = !this.isValid;<br />
this.submit.className = this.isValid ? 'submit' : 'disabled';<br />
},<br />
<br />
setFormClassName: function() {<br />
var name = this.form.className;<br />
<br />
if (this.isValid) {<br />
return name.replace(/\s?mimi_invalid/, '');<br />
} else {<br />
if (name.indexOf('mimi_invalid') === -1) {<br />
return name += ' mimi_invalid';<br />
} else {<br />
return name;<br />
}<br />
}<br />
},<br />
<br />
submitButtonText: function() {<br />
var invalidFields = document.querySelectorAll('.invalid'),<br />
text;<br />
<br />
if (this.isValid || !invalidFields) {<br />
text = this.submit.getAttribute('data-default-text');<br />
} else {<br />
if (invalidFields.length || invalidFields[0].className.indexOf('checkgroup') === -1) {<br />
text = this.submit.getAttribute('data-invalid-text');<br />
} else {<br />
text = this.submit.getAttribute('data-choose-list');<br />
}<br />
}<br />
return text;<br />
},<br />
<br />
submitForm: function() {<br />
this.formSubmitting();<br />
<br />
var _this = this;<br />
window[this.callbackName] = function(response) {<br />
delete window[this.callbackName];<br />
document.body.removeChild(script);<br />
_this.onSubmitCallback(response);<br />
};<br />
<br />
var script = document.createElement('script');<br />
script.src = this.formUrl('json');<br />
document.body.appendChild(script);<br />
},<br />
<br />
formUrl: function(format) {<br />
var action = this.form.action;<br />
if (format === 'json') action += '.json';<br />
return action + '?callback=' + this.callbackName + '&' + serialize(this.form);<br />
},<br />
<br />
formSubmitting: function() {<br />
this.form.className += ' mimi_submitting';<br />
this.submit.value = this.submit.getAttribute('data-submitting-text');<br />
this.submit.disabled = true;<br />
this.submit.className = 'disabled';<br />
},<br />
<br />
onSubmitCallback: function(response) {<br />
if (response.success) {<br />
this.onSubmitSuccess(response.result);<br />
} else {<br />
top.location.href = this.formUrl('html');<br />
}<br />
},<br />
<br />
onSubmitSuccess: function(result) {<br />
if (result.has_redirect) {<br />
top.location.href = result.redirect;<br />
} else if(result.single_opt_in || !result.confirmation_html) {<br />
this.disableForm();<br />
this.updateSubmitButtonText(this.submit.getAttribute('data-thanks'));<br />
} else {<br />
this.showConfirmationText(result.confirmation_html);<br />
}<br />
},<br />
<br />
showConfirmationText: function(html) {<br />
var fields = this.form.querySelectorAll('.mimi_field');<br />
<br />
for (var i = 0; i < fields.length; ++i) {<br />
fields[i].style['display'] = 'none';<br />
}<br />
<br />
(this.form.querySelectorAll('fieldset')[0] || this.form).innerHTML = html;<br />
},<br />
<br />
disableForm: function() {<br />
var elements = this.form.elements;<br />
for (var i = 0; i < elements.length; ++i) {<br />
elements[i].disabled = true;<br />
}<br />
},<br />
<br />
updateSubmitButtonText: function(text) {<br />
this.submit.value = text;<br />
},<br />
<br />
revalidateOnChange: function() {<br />
var fields = this.form.querySelectorAll(".mimi_field.required"),<br />
_this = this;<br />
<br />
var onTextFieldChange = function() {<br />
if (this.getAttribute('name') === 'signup[email]') {<br />
if (_this.validEmail.test(this.value)) _this.validate();<br />
} else {<br />
if (this.value.length === 1) _this.validate();<br />
}<br />
}<br />
<br />
for (var i = 0; i < fields.length; ++i) {<br />
var inputs = fields[i].getElementsByTagName('input');<br />
for (var j = 0; j < inputs.length; ++j) {<br />
if (this.fieldType(fields[i]) === 'text_field') {<br />
inputs[j].onkeyup = onTextFieldChange;<br />
inputs[j].onchange = onTextFieldChange; <br />
} else {<br />
inputs[j].onchange = function(){ _this.validate() };<br />
}<br />
}<br />
}<br />
}<br />
});<br />
<br />
if (document.addEventListener) {<br />
document.addEventListener("DOMContentLoaded", function() {<br />
new Mimi.Signups.EmbedValidation();<br />
});<br />
}<br />
else {<br />
window.attachEvent('onload', function() {<br />
new Mimi.Signups.EmbedValidation();<br />
});<br />
}<br />
})(this);<br />
</script> -
Increasing Website Traffic : 11 Tips To Attract Visitors
25 août 2023, par Erin — Analytics Tips, MarketingFor your website and business to succeed, you need to focus on building traffic.
However, you aren’t the only one with that goal in mind.
There are millions of other websites trying to increase their traffic as well. With that much competition, it’s important to make sure your website stands out. Accomplishing that can require a great deal of strategy.
We’ve compiled a list of tips to help you develop a solid plan for increasing website traffic, to expand your reach, grow your audience and boost customer engagement levels — creating more opportunities for your business.Using these tips, more visitors will find their way to your website — meaning more customers for your business.
Why is website traffic important ?
Website traffic is essentially the number of people visiting your website. When someone lands on your site, they’re considered a visitor and increase your website traffic.
When your website traffic is high, you’ll get more clicks, customer interactions and brand engagement. As a result, search engines will have a positive impression of your website and send more people there, meaning even more people will see your content and have the opportunity to buy your product.
When using a website for your business or any other venture, tracking your website traffic using a web analytics solution like Matomo is critical.
With over 200 million actively maintained and visited websites in 2023, it’s important to make sure yours stands out if you want to increase your website traffic and grow your online presence.
11 tips for increasing website traffic
Here are 11 tips to increase your organic traffic and elevate your business.
1. Perfect your SEO
Optimising your website to show up in search engine results shouldn’t be overlooked, as 63% of consumers start researching a product by using a search engine. Search engine optimisation, or SEO, increases the visibility and discoverability of your website on search engine results pages (SERPs). SEO targets organic searches, which means it doesn’t add to social media traffic, direct traffic or referrals, and it isn’t paid traffic.
SEO is number one on this list for a reason — most of these tips will directly, or indirectly, improve your SEO efforts.
Steps to improve your search engine optimisation can include :
- Using relevant keywords that are incorporated naturally throughout your content
- Using a web analytics tool like Matomo, with its search keyword feature, to gain insights and identify opportunities for improvement
- Using descriptive meta titles and meta descriptions
- Link to your own content internally with descriptive anchor tags, and make sure unused pages are removed
- Keeping your target audience in mind and marketing your content toward them
- Making sure your website’s structure is optimised to be mobile-friendly, fast and responsive — such as with Matomo’s SEO Web Vitals feature, which monitors key metrics like your website’s page speed and loading performance, pivotal for optimising search engine results
2. Research the competition
It’s important to remember that while your business might be unique, it’s likely not the only one in its field. Thousands of other websites from other companies are also looking to improve their website traffic and increase sales, and you have to outcompete them.
Looking at what your competitors are doing is vital from a strategic perspective. You can see what their content looks like, how they’re framing their specific use cases and what target audience they’re marketing toward.
Knowing what your competitors are doing can help you find ways to improve your content and make it unique. Are your competitors missing a specific use case or neglecting a particular audience ? Fill in their content gaps on your website, and pick up the traffic they’re missing.
3. Create high-quality, evergreen content
If your content is high-quality, visitors will read more of it and stay longer on your site. This obviously increases the likelihood they will purchase your product or service, and it tells search engines that your website is a good answer for a search query.
High-quality content will also be shared more often, leading to even more website traffic. You should aim to develop content that doesn’t lose relevance over time (aka “evergreen content”). If you include time-sensitive data, statistics or content in your website, blog posts or articles, it’ll be relevant only around that time frame.
While this month’s viral content is highly popular, it likely won’t be relevant in a few months. Instead, if you ensure your content is evergreen, it will continue to get engagement long after it’s published.
4. Implement creative visuals
It’s important to have engaging, fun and interactive media on your website to keep visitors on your site longer. Like good content, interesting visuals (and the resulting longer visits) can translate to more purchases (and favourable assessments by search engines).
Media can take the form of videos, infographics, images or web graphics.
With Matomo’s Media Analytics feature, you can automatically gain even deeper insights into how your visitors engage with your media content, enhancing your understanding of their preferences and behaviours.
If you have interesting, captivating visuals, visitors will be more likely to stay on your website longer and see what you have to offer. Without captivating visuals to break up walls of text, you’ll likely find visitors will tend to leave your site in favour of something more engaging.
Just make sure you design your visuals with your target audience in mind. Flashy, fun graphics might not be a good fit for a professional audience, but they’re great for younger audiences. If you get your audience correct, they may also share the images with others. Depending on your business, that might be a useful infographic shared across LinkedIn, or a picture of a clever use case shared on Pinterest.
As a bonus, if other companies use your graphics on their websites, that earns you some backlinks — more on those in a bit.
5. Create a comprehensive knowledge base
Having a knowledge base is critical to making sure your service or product is well understood and well documented, especially in the tech industry. If a visitor or potential customer is interested in your product or service, they need to know exactly what it will do for them and that they have a good foundation of support in case they need help. A knowledge base is also a good place for internal links (more on those in a bit).
Visitors can also use your knowledge base as a source of information, and if they cite you as a source, that’ll lead right back to more website traffic for you (see our backlinks section for more about this). If your website is a good source of information, visitors will come back to it again and again.
6. Use social media often and consistently
Digital marketing nowadays heavily relies on social media platforms. Having an online presence no longer means just having a website — if you’re not using social media sites, you’re missing out on a huge portion of potential visitors and customers.
A strong social media presence with profiles on platforms like Facebook, X (formerly Twitter), Instagram or LinkedIn can be invaluable for increasing your website traffic. Visitors to your social media profiles will click on regularly shared content, read your blog posts and possibly become customers.
Participating in relevant communities and networking with other companies in groups in your industry can also be invaluable. If you participate in online communities and forums for your niche, you can offer insight, answer questions and plug your website. All of this will increase your clicks, which will increase your website traffic.
If you’ve managed to build your own community on social media, make sure to keep them engaged ! Implementing your own forum, hosting live chats and Q&As, offering helpful and engaging content will make sure visitors keep coming back and spreading the word.
7. Use email marketing or newsletters
Having an email list and sending marketing emails or newsletters is a great way to increase website traffic. You can offer exclusive content, and promise discounts or resources to your subscribers for when they return to your website. This will help keep your loyal audience engaged, entice new customers to subscribe to your newsletter, give you a chance to upsell to people who have already expressed an interest in your product and potentially convert curious subscribers into customers.
8. Make sure your content can earn backlinks
A backlink is when a website links to a different website — ideally using relevant anchor text — and it’s an effective strategy for increasing referral traffic, that is, visitors who get to your website via a link on another website. The more backlinks you have, the more your referral traffic will increase. Social share buttons make it easy for people to cite you on social platforms, too.
We’ve already talked about making expert content that’s link-worthy, but also make sure that you’re creating linkable assets (like those interesting visuals mentioned earlier), building relationships with other sites that will link to you (like by inviting an expert or influencer to write on your page and promote it from their platform, or by writing your own guest content for their sites) and sharing your own content. All of this can help increase your referral traffic, particularly when you’re linked from websites with a higher domain authority than you have.
You can also make sure your website is listed in online directories. Some sites will do interviews and roundups, as well — these are great opportunities to increase your backlinks.
9. Optimise your CTR
Click-through rate, or CTR, is the percentage of users who click on specific links to your website. A high CTR means your visitors are following a link — whether in an advertisement, a search result or a social media post — and a low CTR means they’re passing it by. Optimising your CTR can greatly improve your website traffic.
To improve CTR, identify successful elements such as copy, imagery, and offers in your ads, enabling you to amplify effective elements and minimise less impactful ones.
10. Ensure your website is responsive and mobile-friendly
If a visitor is frustrated by your site being slow, laggy, clunky or not mobile-friendly, they won’t stay long. That doesn’t look good to search engines if that’s how your visitors got there. Your website needs to be clean, responsive, user-friendly and accessible.
If your website is slow, try increasing your website’s performance by :
- Optimising images : Reduce the size of images and compress them for faster load times. Opt for JPEG format for photos and PNG format for graphics.
- Limit the use of plugins : If you are using a CMS like WordPress, consider removing plugins that are unnecessary or not essential.
- Embrace lazy loading : To further enhance site speed and reduce initial load times, set up your site to load images and content only as visitors scroll down. Prioritising the content and images at the top of the page makes the site feel faster. Some CMS platforms will offer this option, but others may require a bit of coding to set this up.
Many people rely on their phones to research services or products, especially if they’re doing a quick search. Make sure your website is friendly to mobile users. It should scale vertically and scroll smoothly so users aren’t frustrated when using your site. They should be able to find the info they need immediately without any technical issues.
11. Track your website’s metrics
As you test out each of these strategies to increase your web traffic, don’t forget to closely analyse the performance of your site. To truly understand the impact of your efforts, you’ll need a reliable web analytics solution. Think of a dependable web analytics solution as your website’s GPS. Without it, you’d be lost, unsure of your direction and missing out on valuable insights to steer your growth.
Matomo is a powerful web analytics tool that can help you do just that by providing information on your site visitors and campaign performance, complemented by an array of behavioural analytics features that delve into user interactions. Among these, our heatmap feature stands out, enabling greater insights into user interactions and optimisation of your site’s effectiveness.
Google Analytics is another powerful analytics option, though it has challenges with data accuracy ; there are multiple other web analytics solutions as well.
Regardless of what web analytics solution you choose, the process of analysing your website metrics is incredibly important for identifying areas of improvement to increase website traffic.
Increasing your web traffic is a process
Increasing website traffic isn’t something you accomplish overnight. It’s a comprehensive, ongoing endeavour that requires constant analysis and fine-tuning.
By applying these tips to create consistent, high-quality content that gets spotlighted on search engines, shared on social media and returned to again and again, you’ll see a steady stream of increased traffic.
With Matomo, you can understand your visitor behaviour to see what works and what doesn’t as you work to increase your website traffic. Get your free 21-day trial now. No credit card required.
-
Matomo analytics for wordpress
15 octobre 2019, par Matomo Core Team — CommunitySelf-hosting web analytics got a whole lot easier ! Introducing Matomo for WordPress
Be the first to try it out ! Your feedback is much needed and appreciated
Get a fully functioning Matomo (which is comparable to Google Analytics) in seconds ! How ? With the new Matomo Analytics for WordPress plugin.
Web analytics in WordPress has never been easier to get, or more powerful. Matomo Analytics for WordPress is the one-stop problem solver. It’ll save you time, money and give you the insights to help your website or business succeed.
Best of all, we get to further the goal of decentralising the internet. Our hope is for Matomo Analytics for WordPress to spread far and wide. We’re so excited that more and more people can now get their hands on this powerful, free, open-source analytics platform, in a few clicks !
Download now and check it out !
What do you get ?
- No more signing up to third party analytics service (like Google)
- No more sending away your valuable data to a third party service (like Google)
- Easy setup – install with a few clicks, no tracking code installation or developer knowledge needed
- 100% accurate data – no data sampling and no data limits
- Full data ownership – all data is stored on your servers and no one else can see your data
- Privacy protection / GDPR compliance
- Ecommerce tracking out-of-the-box (Woocommerce, Easy Digital Downloads, and MemberPress) and we’re keen to add many more over time
- Powerful features – segmenting, comparing reports, different visualisations, real-time reports, visit logs and visitor profiles, Matomo Tag Manager, dashboards, data export, APIs, and many more
- Compared to other WordPress solutions we don’t charge you extra for basic features that should work out-of-the-box
- Just like Matomo On-Premise, Matomo Analytics for WordPress is free
We need your feedback !
We all know and love the versatility of WordPress – with over 55,000 plugins and all the different ways of hosting it. However, with this great versatility comes the potential for things to be missed, so we’re keen to hear your feedback.
- Is our plugin breaking anything on your WordPress, or, not compatible with something ? Please create an issue on our repository.
- Is something not working ? If so, what ? Please create an issue on our repository.
- How does running Matomo impact the performance of your WordPress server ? Also, if you have any other feedback for us – whether good or bad – please email us at wordpress@matomo.org. We’d love to hear what you think !
- Can you perform a security review of the plugin ? Security issues are best reported to security@matomo.org
- Do you have any questions ? Questions are best asked in our forum
Thank you ! We really appreciate your help on this ❤️
How do you get Matomo Analytics for WordPress ?
Log in to your WordPress and go to “Plugins => Add New”, search for “Matomo Analytics – Ethical Stats. Powerful Insights”, click on “Install” and then “Activate”.
All you need is at least WordPress 4.8 and PHP 7.0 or later. MySQL 5.1+ is recommended.
The source code is available at : https://github.com/matomo-org/wp-matomo/.
In perfect harmony : Matomo and WordPress
The idea for this started two years ago when we realised the similarities between the Matomo and WordPress project.
Not only from a technological point of view – where both are based on PHP and MySQL and can be extended using plugins – but also from a philosophical, license and values point of view. We both believe in privacy, security, data ownership, openness, transparency, having things working out-of-the-box, simplicity etc.
WordPress is currently used on approximately 30% of all websites. Many of them use the self-hosted open-source WordPress version. Giving everyone in this market the opportunity to easily get a powerful web analytics platform for free, means a lot to us. We believe WordPress users get a real choice besides the standard solution of Google Analytics, and it furthers our effort and goal of decentralising the internet.
We’re hoping more people will be empowered to protect user privacy, have access to a great free and open-source tool, and keep control of data in their own hands.
We hope you feel the same. Help us spread the word to your friends and get them in on this awesome new project !
Share on facebookShare on twitterShare on linkedinFAQs
Isn’t there already a WP-Matomo plugin for WordPress available ?
Yes, the existing WP-Matomo (WP-Piwik) plugin is an awesome plugin to connect your existing Matomo On-Premise or Matomo Cloud account with WordPress. The difference is that this new plugin installs Matomo Analytics fully in your WordPress. So you get the convenience of having a powerful analytics platform within your WordPress.
We highly recommend you install this new plugin if you use WordPress and are not running Matomo yet.
If you are already using Matomo on our Cloud or On-Premise, we’d still highly recommend you use WP-Matomo (WP-Piwik). So that you get an easier way of inserting the tracking code into your WordPress site and get insights faster.
I have a high traffic website, will it be an issue ?
If you have a lot of traffic, we’d advise you to install Matomo On-Premise separately. There’s no specific traffic threshold we can give you on when it’s better to use Matomo On-Premise. It really depends on your server.
We reckon if you have more than 500,000 page views a month, you may want to think about using Matomo On-Premise with WP-Matomo instead, but this is just an estimate. In general, if the load on your server is already quite high, then it might be better to install Matomo on a separate server. See also recommended server sizing for running Matomo.
How do I report a bug or request a new feature in Matomo for WordPress ?
Please create an issue, on our repository whenever you find a bug or if you have any suggestion or ideas of improvement. We want to build an outstanding analytics experience for WordPress !
Have another question you’re dying to ask ? The Matomo for WordPress FAQ page might have the answer you need.
Matomo Analytics for WordPress newsletter
Get ahead of the crowd – signup to our exclusive Matomo for WordPress newsletter to get the latest updates on this exciting new project.
<script type="text/javascript"><br />
(function(global) {<br />
function serialize(form){if(!form||form.nodeName!=="FORM"){return }var i,j,q=[];for(i=form.elements.length-1;i>=0;i=i-1){if(form.elements[i].name===""){continue}switch(form.elements[i].nodeName){case"INPUT":switch(form.elements[i].type){case"text":case"hidden":case"password":case"button":case"reset":case"submit":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"checkbox":case"radio":if(form.elements[i].checked){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value))}break;case"file":break}break;case"TEXTAREA":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"SELECT":switch(form.elements[i].type){case"select-one":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"select-multiple":for(j=form.elements[i].options.length-1;j>=0;j=j-1){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case"BUTTON":switch(form.elements[i].type){case"reset":case"submit":case"button":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break}break}}return q.join("&")};<br />
<br />
<br />
function extend(destination, source) {<br />
for (var prop in source) {<br />
destination[prop] = source[prop];<br />
}<br />
}<br />
<br />
if (!Mimi) var Mimi = {};<br />
if (!Mimi.Signups) Mimi.Signups = {};<br />
<br />
Mimi.Signups.EmbedValidation = function() {<br />
this.initialize();<br />
<br />
var _this = this;<br />
if (document.addEventListener) {<br />
this.form.addEventListener('submit', function(e){<br />
_this.onFormSubmit(e);<br />
});<br />
} else {<br />
this.form.attachEvent('onsubmit', function(e){<br />
_this.onFormSubmit(e);<br />
});<br />
}<br />
};<br />
<br />
extend(Mimi.Signups.EmbedValidation.prototype, {<br />
initialize: function() {<br />
this.form = document.getElementById('ema_signup_form');<br />
this.submit = document.getElementById('webform_submit_button');<br />
this.callbackName = 'jsonp_callback_' + Math.round(100000 * Math.random());<br />
this.validEmail = /.+@.+\..+/<br />
},<br />
<br />
onFormSubmit: function(e) {<br />
e.preventDefault();<br />
<br />
this.validate();<br />
if (this.isValid) {<br />
this.submitForm();<br />
} else {<br />
this.revalidateOnChange();<br />
}<br />
},<br />
<br />
validate: function() {<br />
this.isValid = true;<br />
this.emailValidation();<br />
this.fieldAndListValidation();<br />
this.updateFormAfterValidation();<br />
},<br />
<br />
emailValidation: function() {<br />
var email = document.getElementById('signup_email');<br />
<br />
if (this.validEmail.test(email.value)) {<br />
this.removeTextFieldError(email);<br />
} else {<br />
this.textFieldError(email);<br />
this.isValid = false;<br />
}<br />
},<br />
<br />
fieldAndListValidation: function() {<br />
var fields = this.form.querySelectorAll('.mimi_field.required');<br />
<br />
for (var i = 0; i < fields.length; ++i) {<br />
var field = fields[i],<br />
type = this.fieldType(field);<br />
if (type === 'checkboxes' || type === 'radio_buttons' || type === 'age_check') {<br />
this.checkboxAndRadioValidation(field);<br />
} else {<br />
this.textAndDropdownValidation(field, type);<br />
}<br />
}<br />
},<br />
<br />
fieldType: function(field) {<br />
var type = field.querySelectorAll('.field_type');<br />
<br />
if (type.length) {<br />
return type[0].getAttribute('data-field-type');<br />
} else if (field.className.indexOf('checkgroup') >= 0) {<br />
return 'checkboxes';<br />
} else {<br />
return 'text_field';<br />
}<br />
},<br />
<br />
checkboxAndRadioValidation: function(field) {<br />
var inputs = field.getElementsByTagName('input'),<br />
selected = false;<br />
<br />
for (var i = 0; i < inputs.length; ++i) {<br />
var input = inputs[i];<br />
if((input.type === 'checkbox' || input.type === 'radio') && input.checked) {<br />
selected = true;<br />
}<br />
}<br />
<br />
if (selected) {<br />
field.className = field.className.replace(/ invalid/g, '');<br />
} else {<br />
if (field.className.indexOf('invalid') === -1) {<br />
field.className += ' invalid';<br />
}<br />
<br />
this.isValid = false;<br />
}<br />
},<br />
<br />
textAndDropdownValidation: function(field, type) {<br />
var inputs = field.getElementsByTagName('input');<br />
<br />
for (var i = 0; i < inputs.length; ++i) {<br />
var input = inputs[i];<br />
if (input.name.indexOf('signup') >= 0) {<br />
if (type === 'text_field') {<br />
this.textValidation(input);<br />
} else {<br />
this.dropdownValidation(field, input);<br />
}<br />
}<br />
}<br />
this.htmlEmbedDropdownValidation(field);<br />
},<br />
<br />
textValidation: function(input) {<br />
if (input.id === 'signup_email') return;<br />
<br />
if (input.value) {<br />
this.removeTextFieldError(input);<br />
} else {<br />
this.textFieldError(input);<br />
this.isValid = false;<br />
}<br />
},<br />
<br />
dropdownValidation: function(field, input) {<br />
if (input.value) {<br />
field.className = field.className.replace(/ invalid/g, '');<br />
} else {<br />
if (field.className.indexOf('invalid') === -1) field.className += ' invalid';<br />
this.onSelectCallback(input);<br />
this.isValid = false;<br />
}<br />
},<br />
<br />
htmlEmbedDropdownValidation: function(field) {<br />
var dropdowns = field.querySelectorAll('.mimi_html_dropdown');<br />
var _this = this;<br />
<br />
for (var i = 0; i < dropdowns.length; ++i) {<br />
var dropdown = dropdowns[i];<br />
<br />
if (dropdown.value) {<br />
field.className = field.className.replace(/ invalid/g, '');<br />
} else {<br />
if (field.className.indexOf('invalid') === -1) field.className += ' invalid';<br />
this.isValid = false;<br />
dropdown.onchange = (function(){ _this.validate(); });<br />
}<br />
}<br />
},<br />
<br />
textFieldError: function(input) {<br />
input.className = 'required invalid';<br />
input.placeholder = input.getAttribute('data-required-field');<br />
},<br />
<br />
removeTextFieldError: function(input) {<br />
input.className = 'required';<br />
input.placeholder = '';<br />
},<br />
<br />
onSelectCallback: function(input) {<br />
if (typeof Widget === 'undefined' || !Widget.BasicDropdown) return;<br />
<br />
var dropdownEl = input.parentNode,<br />
instances = Widget.BasicDropdown.instances,<br />
_this = this;<br />
<br />
for (var i = 0; i < instances.length; ++i) {<br />
var instance = instances[i];<br />
if (instance.wrapperEl === dropdownEl) {<br />
instance.onSelect = function(){ _this.validate() };<br />
}<br />
}<br />
},<br />
<br />
updateFormAfterValidation: function() {<br />
this.form.className = this.setFormClassName();<br />
this.submit.value = this.submitButtonText();<br />
this.submit.disabled = !this.isValid;<br />
this.submit.className = this.isValid ? 'submit' : 'disabled';<br />
},<br />
<br />
setFormClassName: function() {<br />
var name = this.form.className;<br />
<br />
if (this.isValid) {<br />
return name.replace(/\s?mimi_invalid/, '');<br />
} else {<br />
if (name.indexOf('mimi_invalid') === -1) {<br />
return name += ' mimi_invalid';<br />
} else {<br />
return name;<br />
}<br />
}<br />
},<br />
<br />
submitButtonText: function() {<br />
var invalidFields = document.querySelectorAll('.invalid'),<br />
text;<br />
<br />
if (this.isValid || !invalidFields) {<br />
text = this.submit.getAttribute('data-default-text');<br />
} else {<br />
if (invalidFields.length || invalidFields[0].className.indexOf('checkgroup') === -1) {<br />
text = this.submit.getAttribute('data-invalid-text');<br />
} else {<br />
text = this.submit.getAttribute('data-choose-list');<br />
}<br />
}<br />
return text;<br />
},<br />
<br />
submitForm: function() {<br />
this.formSubmitting();<br />
<br />
var _this = this;<br />
window[this.callbackName] = function(response) {<br />
delete window[this.callbackName];<br />
document.body.removeChild(script);<br />
_this.onSubmitCallback(response);<br />
};<br />
<br />
var script = document.createElement('script');<br />
script.src = this.formUrl('json');<br />
document.body.appendChild(script);<br />
},<br />
<br />
formUrl: function(format) {<br />
var action = this.form.action;<br />
if (format === 'json') action += '.json';<br />
return action + '?callback=' + this.callbackName + '&' + serialize(this.form);<br />
},<br />
<br />
formSubmitting: function() {<br />
this.form.className += ' mimi_submitting';<br />
this.submit.value = this.submit.getAttribute('data-submitting-text');<br />
this.submit.disabled = true;<br />
this.submit.className = 'disabled';<br />
},<br />
<br />
onSubmitCallback: function(response) {<br />
if (response.success) {<br />
this.onSubmitSuccess(response.result);<br />
} else {<br />
top.location.href = this.formUrl('html');<br />
}<br />
},<br />
<br />
onSubmitSuccess: function(result) {<br />
if (result.has_redirect) {<br />
top.location.href = result.redirect;<br />
} else if(result.single_opt_in || !result.confirmation_html) {<br />
this.disableForm();<br />
this.updateSubmitButtonText(this.submit.getAttribute('data-thanks'));<br />
} else {<br />
this.showConfirmationText(result.confirmation_html);<br />
}<br />
},<br />
<br />
showConfirmationText: function(html) {<br />
var fields = this.form.querySelectorAll('.mimi_field');<br />
<br />
for (var i = 0; i < fields.length; ++i) {<br />
fields[i].style['display'] = 'none';<br />
}<br />
<br />
(this.form.querySelectorAll('fieldset')[0] || this.form).innerHTML = html;<br />
},<br />
<br />
disableForm: function() {<br />
var elements = this.form.elements;<br />
for (var i = 0; i < elements.length; ++i) {<br />
elements[i].disabled = true;<br />
}<br />
},<br />
<br />
updateSubmitButtonText: function(text) {<br />
this.submit.value = text;<br />
},<br />
<br />
revalidateOnChange: function() {<br />
var fields = this.form.querySelectorAll(".mimi_field.required"),<br />
_this = this;<br />
<br />
var onTextFieldChange = function() {<br />
if (this.getAttribute('name') === 'signup[email]') {<br />
if (_this.validEmail.test(this.value)) _this.validate();<br />
} else {<br />
if (this.value.length === 1) _this.validate();<br />
}<br />
}<br />
<br />
for (var i = 0; i < fields.length; ++i) {<br />
var inputs = fields[i].getElementsByTagName('input');<br />
for (var j = 0; j < inputs.length; ++j) {<br />
if (this.fieldType(fields[i]) === 'text_field') {<br />
inputs[j].onkeyup = onTextFieldChange;<br />
inputs[j].onchange = onTextFieldChange; <br />
} else {<br />
inputs[j].onchange = function(){ _this.validate() };<br />
}<br />
}<br />
}<br />
}<br />
});<br />
<br />
if (document.addEventListener) {<br />
document.addEventListener("DOMContentLoaded", function() {<br />
new Mimi.Signups.EmbedValidation();<br />
});<br />
}<br />
else {<br />
window.attachEvent('onload', function() {<br />
new Mimi.Signups.EmbedValidation();<br />
});<br />
}<br />
})(this);<br />
</script>